[STM32] GPIO使用说明

2022-02-11 11:10:59 浏览数 (2)

GPIO与总线的连接

例如stm32f103c8的几组GPIO就挂载在APB2上

GPIO的引脚功能

1. 输出
(1) 推挽输出

可以配置上拉下拉输出模式 原理图

(2) 开漏输出

具有“线与”的功能 原理图

开漏输出一般应用在I2C、SMBUS通信等需要“线与”功能的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出5V的高电平,就可以在外部接一个上拉电阻,上拉电源为5V,并且把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5V的电平,如下图

(3) 复用功能输出

“复用功能输出”中的“复用”是指STM32的其他片上外设对GPIO引脚进行控制,此时GPIO引脚用作该外设功能的一部分,算是第二用途。

2.输入
(1) 上拉输入
(2) 下拉输入
(3) 浮空输入
(4) 模拟输入

HAL库gpio配置代码

GPIO_mode:

状态定义

释义

GPIO_MODE_INPUT

浮空输人模式

GPIO_MODE_OUTPUT_PP

推挽输出模式

GPIO_MODE_OUTPUT_OD

开漏输出模式

GPIO_MODE_AF_PP

复用功能推挽模式

GPIO_MODE_AF_OD

复用功能开漏模式

GPIO_MODE_ANALOG

模拟模式

GPIO_MODE_IT_RISING

上升沿触发检测的外部中断模式

GPIO_MODE_IT_FALLING

下降沿触发检测的外部中断模式

GPIO_MODE_IT_RISING_FALLING

上升/下降沿触发检测的外部中断模式

GPIO_MODE_EVT_RISING

上升沿触发检测的外部事件模式

GPIO_MODE_EVT_FALLING下降沿触发检测的外部事件模式 GPIO_MODE_EVT_RISING_FALLING|上升/下降沿触发检测的外部事件模式 GPIO_speed |定义|说明| |--|--| |GPIO_SPEED_FREQ_LOW|频率范围最高到2MHZ| |GPIO_SPEED_FREQ_MEDIUM|频率范围最高到4-10MHZ| |GPIO_SPEED_FREQ_HIGH|频率范围最高到10-50MHZ|

GPIO_pull |--|--| |GPIO_NOPULL|没有上拉或下拉激活| |GPIO_PULLUP|上拉激活| |GPIO_PULLDOWN|下拉激活|

HAL_GPIO_Init

HAL_GPIO_ReadPin HAL_GPIO_TogglePin HAL_GPIO_WritePin

0 人点赞