原来这便是GPIO的八种工作模式!!!

以前学习STM32感觉掌握的不牢固,很多知识都遗忘了,所以趁着疫情在家重新学习下,顺便记录下容易混的知识,和大家一起分享。

1. GPIO — 指的是通用输入和输出端口

引脚与GPIO区别?

(1)引脚有的是做GPIO用,有的是做电源引脚,复位引脚,晶振引脚等
(2)引脚可以复用,可以做GPIO,也可以做其他的作用(例如做串口…)

2. GPIO的八种工作模式 — 重点

四种输入:

浮空输入: 芯片读取的引脚电平状态不确定,取决于GPIO外部电平,可以做KEY识别
上拉输入: IO内带上拉电阻输入
下拉输入: IO内带下拉电阻输入
模拟输入: ADC模拟输入,不像其他输入模式只有0和1,模拟输入模式可以读取到很细微变化的值,ADC

四种输出(以下四个均含上下拉):

开漏输出: 只能输出低电平,外部不接上拉电阻时,所以要想输出高电平必须要外接上拉电阻
GPIO_MODE_OUTPUT_PP   // 开漏输出
开漏复用输出: 理解为GPIO第二功能IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
推挽式输出: 可以输出强高低电平,连接数字其间。例如IIC (SCL,SDA)
GPIO_MODE_OUTPUT_OD   // 推挽式输出
推挽式复用输出: 理解为GPIO第二功能,例如串口通信TX,SPI等

3.八种模式对应Hal函数

(1)GPIO_Mode_IN_FLOATING   // 浮空输入
(2)GPIO_Mode_IPU 		   // 上拉输入
(3)GPIO_Mode_IPD           // 下拉输入
(4)GPIO_Mode_AIN           // 模拟输入 

(5)GPIO_Mode_Out_OD        // 开漏输出
(6)GPIO_Mode_AF_OD         // 开漏复用输出
(7)GPIO_Mode_Out_PP        // 推挽输出
(8)GPIO_Mode_AF_PP         // 复用推挽输出

4. 注意 — 重点

当引脚高有效的我们就下拉,低有效的话我们就上拉,增强其控制能力

后续将继续补充与完善…

经验分享 程序员 微信小程序 职场和发展