学习STM32HAL库GPIO的笔记(一)

一、基础知识

GPIO全名为General Purpose Input Output,即通用输入输出。有时候简称为“IO口”。通用,说明它是常见的。输入输出,就是说既能当输入口使用,又能当输出口使用。端口,就是元器件上的一个引脚。

输入模式和输出模式是GPIO的基本特性,当然GPIO还有其它模式可选。

IO耐压问题

STM32是一款3.3V电压的芯片,IO输出是3.3V,但IO大部分都是可以容忍5V电压输入。一般在芯片手册的“引脚定义”章节可以查看到有FT标识表示该IO可以容忍5V电压输入。


二、在HAL库中的GPIO的模式

1、输入模式GPIO_Input

        上拉或下拉输入(GPIO Pull-up/Pull-down):

        |浮空输入(No pull-up and no pull-down):引脚电平是真实的外部连接器件电压,电平有不确定性

        |上拉输入(Pull-up):默认通过电阻上拉到VCC,不接外部器件时可以读出高电平

        |下拉输入(Pull-down):默认通过电阻下拉到GND,不接外部器件时可以读出低电平

2、输出模式GPIO_Out

        默认输出电平(GPIO output level):

        |低电平(Low):默认输出低电平

        |高电平(High):默认输出高电平

        输出类型(GPIO Mode):

        |推挽输出(Output Push Pull):一种使用一对选择性地从相连负载灌电流或者拉电流的器件的电路。

        |开漏输出(Output Open Drain):高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。

        上拉或下拉输出(GPIO Pull-up/Pull-down):

        |浮空输出(No pull-up and no pull-down):引脚电平是真实的外部连接器件电压,电平有不确定性

        |上拉输出(Pull-up):默认通过电阻上拉到VCC,不接外部器件时可以输出高电平

        |下拉输出(Pull-down):默认通过电阻下拉到GND,不接外部器件时可以输出低电平 

        输出频率(Maximum output speed):

        |低频率输出(LOW)

        |中频率输出(Medium)

        |高频率输出(High)

        |极高频率输出(Very High)

三、在CubeMX中修改引脚名称      

        1.在左侧找到System Core->GPIO;

        2.找到应对的GPIO,例如PH10;

        3.在下方的配置单中User Label 填写命名,填好后会在芯片缩略图中更新

        4.点击 GENERATE CODE 生成代码

四、常用引脚输入函数

        函数名:HAL_GPIO_ReadPin(参数1,参数2)

        函数作用:读取对应的引脚电平

        返回值:若读取到高电平,则返回GPIO_PIN_SET;反之,读取到低电平,则返回GPIO_PIN_RESET      

        参数1:GPIOx      对应GPIO总线,其中x可以是A…I,例如PH10,则输入GPIOH

        参数2:GPIO_Pin   对应引脚数,可以是1…15,例如PH10,则输入GPIO_PIN_10

五、常用引脚输出函数

        函数名:HAL_GPIO_WritePin(参数1,参数2,参数3)

        函数作用:使对应的引脚输出高电平或者低电平

        返回值:viod

        参数1:GPIOx      对应GPIO总线,其中x可以是A…I,例如PH10,则输入GPIOH

        参数2:GPIO_Pin   对应引脚数,可以是1…15,例如PH10,则输入GPIO_PIN_10

        参数3:PinState    GPIO_PIN_RESET,输出低电平;GPIO_PIN_SET,输出高电平

(若修改对应引脚的名字,例如PH10修改为LED,则输入 HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,参数3))

六、其他常用函数

        函数名:HAL_GPIO_ToglePin(参数1,参数2)

        函数作用:翻转对应引脚的电平

        返回值:viod

        参数1:GPIOx      对应GPIO总线,其中x可以是A…I,例如PH10,则输入GPIOH

        参数2:GPIO_Pin   对应引脚数,可以是1…15,例如PH10,则输入GPIO_PIN_10

        

        函数名:HAL_Delay(参数1)

        函数作用:延时

        返回值:void

        参数1:常数,单位ms


参考文章:STM32 GPIO详细篇(基于HAL库)

物联沃分享整理
物联沃-IOTWORD物联网 » 学习STM32HAL库GPIO的笔记(一)

发表评论