以前学习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. 注意 — 重点
 
当引脚高有效的我们就下拉,低有效的话我们就上拉,增强其控制能力
 
 
后续将继续补充与完善…