1、什么是GPIO
General Purpose Input Outpu,通用输入输出端口,负责采集外部器件信息或者控制外部器件工作。
2、STM32 GPIO
- 每个IO口都可以做中断
- STM32工作电压:2V <= VDD <=3.6V
- COMS端口与TTL端口
- 单个IO,最大25mA
- 每组最多16个IO接口
3、IO端口基本结构
3.1 保护电路
通过二极管的特性控制输入的电压
3.2 上下拉电阻
弱上拉,电流较小
3.3 施密特触发器
将输入的信号转化为方波信号
3.4 P-MOS&N- MOS管
当栅极与源极存在电压差时导通
4 GPIO的八种模式
4.1 输入浮空
4.2 输入上拉
4.3 输入下拉
4.4模拟功能
4.5 开漏输出
由于施耐特触发器为开启状态,故能输入
4.6 开漏式复用功能
与开漏输出的不同是没有用到ODR寄存器,而是片上外设控制
4.7 推挽输出
驱动能力强直接使用VDD进行输出
4.8 推挽复用式输出
类比开漏输出以及开漏复用式输出,根据由寄存器控制或外设控制进行区分
5 GPIO寄存器
具体的配置信息可以参考stm手册
5.1 CRL、CRH
通过ODR寄存器来控制是上拉还是下拉输入,对应每一个位来区分上下拉
5.2 IDR、ODR寄存器
低十六位用于数据,仅支持字数据
5.3 BSRR寄存器
用于间接控制ODR寄存器。高位复位,低位是置位
6 通用外设驱动模型
7 GPIO配置步骤