content_views"
class="markdown_views prism-atom-one-dark">
GPIO输入输出
RASC图形化配置
输出模式:
c="https://i-blog.csdnimg.cn/direct/25dc7e8cbf3d46258b681b3047963824.png" alt="请添加图片描述" />
输入模式:
c="https://i-blog.csdnimg.cn/direct/448b8c5717bb49d28e5fe95cf307f7bc.png" alt="请添加图片描述" />
配置选项:
配置项 | 取值/描述 |
---|
Mode | l “Input mode”(输入模式)l “Output mode(Initial Low)”(输出模式c;初始电平为低)l “Output mode(Initial High)”(输出模式c;初始电平为高) |
Pull up(上拉电阻) | l “None”(禁止内部上拉)l “input pull-up”(使能内部上拉)当引脚被配置为Output mode时无法设置Pull up参数 |
IRQ(中断) | l “None”(不使用中断)l “IRQ10”(使用中断) |
Output type(输出类型) | l “CMOS”l “n-ch open drain”(开漏)当引脚被配置为Input mode时无法设置本参数 |
Symbolic Name | #define LED (BSP_IO_PORT_04_PIN_00) |
接口函数
[API详解](第5章 GPIO输入输出 | class="tags" href="/BaiWenWang.html" title=百问网>百问网 (100ask.net))
<code class="prism language-c">class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* openclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token keyword">const class="token class-name">ioport_cfg_t class="token operator">* p_cfgclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* closeclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinsCfgclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token keyword">const class="token class-name">ioport_cfg_t class="token operator">* p_cfgclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinCfgclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_pin_t pinclass="token punctuation">, class="token class-name">uint32_t cfgclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinEventInputReadclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_pin_t pinclass="token punctuation">, class="token class-name">bsp_io_level_t class="token operator">* p_pin_eventclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinEventOutputWriteclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_pin_t pinclass="token punctuation">,class="token class-name">bsp_io_level_t pin_valueclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinReadclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_pin_t pinclass="token punctuation">, class="token class-name">bsp_io_level_t class="token operator">* p_pin_valueclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* pinWriteclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_pin_t pinclass="token punctuation">, class="token class-name">bsp_io_level_t levelclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* portDirectionSetclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_t portclass="token punctuation">,class="token class-name">ioport_size_t direction_valuesclass="token punctuation">, class="token class-name">ioport_size_t maskclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* portEventInputReadclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_t portclass="token punctuation">, class="token class-name">ioport_size_t class="token operator">* p_event_dataclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* portEventOutputWriteclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_t portclass="token punctuation">,class="token class-name">ioport_size_t event_dataclass="token punctuation">,class="token class-name">ioport_size_t mask_valueclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* portReadclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_t portclass="token punctuation">,class="token class-name">ioport_size_t class="token operator">* p_port_valueclass="token punctuation">)class="token punctuation">;
class="token class-name">fsp_err_t class="token punctuation">(class="token operator">* portWriteclass="token punctuation">)class="token punctuation">(class="token class-name">ioport_ctrl_t class="token operator">* class="token keyword">const p_ctrlclass="token punctuation">, class="token class-name">bsp_io_port_t portclass="token punctuation">,class="token class-name">ioport_size_t valueclass="token punctuation">, class="token class-name">ioport_size_t maskclass="token punctuation">)class="token punctuation">;
code>
实例代码:
<code class="prism language-c">class="token comment">/* in hal_entry() */class="token class-name">bsp_io_level_t levelclass="token punctuation">;class="token keyword">whileclass="token punctuation">(class="token number">1class="token punctuation">)class="token punctuation">{class="token comment">/* 读按键状态 */g_ioportclass="token punctuation">.p_apiclass="token operator">->class="token function">pinReadclass="token punctuation">(class="token operator">&g_ioport_ctrlclass="token punctuation">, BSP_IO_PORT_00_PIN_00class="token punctuation">, class="token operator">&levelclass="token punctuation">)class="token punctuation">;class="token comment">/* 根据按键状态设置LED */g_ioportclass="token punctuation">.p_apiclass="token operator">->class="token function">pinWriteclass="token punctuation">(class="token operator">&g_ioport_ctrlclass="token punctuation">, BSP_IO_PORT_04_PIN_00class="token punctuation">, levelclass="token punctuation">)class="token punctuation">;class="token punctuation">}
code>