学习STM32感觉掌握的如何,很多知识都遗忘了吧
GPIO的基本结构:
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. 注意 — 重点
当引脚高有效的我们就下拉,低有效的话我们就上拉,增强其控制能力