一.GPIO介绍
STM32单片机GPIO端口是使用频率最高的片上外设之一,俗称通用输出/输入口。根据芯片存储容量不同,各系列单片机实现的GPIO端口数量不同,最多实现了7个GPIOx(x=A,B,C,D,E,F,G),但是各端口用法相同。其中每组GPIO各有16引脚。例如GPIOA0,被称作PA0。
二.基本结构
1.寄存器
寄存器是一种存储器,内核通过APB2总线实现寄存器的读写,从而实现输出电平和输入电平。当输出寄存器写1,对应引脚输出高电平,反之,输出低电平。当输入寄存器写1,说明对于引脚目前端口为高电平,反正,目前为低电平。
2.驱动器
驱动器应用于增强信号驱动能力。
三.位结构
1.引脚钳位
通过两个保护二极管将输出/输入信号电压钳位在VSS~VDD,以保证输出/输入信号不会过压损害芯片。
2.输入通道
带上拉/下拉电阻控制,可实现多模式输入。输入可以通过内部逻辑控制实现模拟电压输入,复用功能单位输出和数字量输入,根据具体应用配置。
3.输出通道
分为数字量输出和复用功能单元输出。输出末端带两个可控制MOS管,可实现推挽或开漏输出,根据具体应用配置。
4.CPU读写控制
CPU进行数字量输入/输出时,直接控制输入数据寄存器,输出寄存器和位设置清除寄存器即可实现对端口引脚的控制。输入分为引脚输入和输出缓存输入两种形式,可根据具体应用选择使用哪一种输入。
5.保护二极管
当输入不在电压0~3.3V之间,可保护电路。
6.施密特触发器
对输入电压进行整形,避免数据失真。
7.模拟输出/复用功能输出
模拟输出接ADC,复用功能输出接其他外设。
8.位设置/清除寄存器
位设置可以对某一位设0,清除寄存器可以对某一位设0。
9.上拉电阻/下拉电阻
· 如图,位于VSS端为下拉电阻,VDD端为上拉电阻。当VSS端断开时为高电平输入模式,当VDD端断开时为低电平输入模式。当两者都断开时,为浮空输入模式,此时输入电平易受外界干扰。相关知识在五.补充 1.知识补充
四.8种工作模式
1.输出
推挽输出,开漏输出,关闭输出。
1)推挽输出(强推输出模式)
对高低电平均有较强驱动能力,对高低电平有绝对控制权。P-MOS与N-MOS均工作,当数据寄存器为1时,上通下断,即输出高电平。当数据寄存器为0,上断下通,输出高电平。
2)开漏输出模式
P-MOS无效,N-MOS工作。当数据寄存器为1时,下断,即高阻模式。当数据寄存器为0时,下通,即输出低电平,具有驱动能力。
3)关闭模式
P-MOS与N-MOS均无效,端口的电平由外部信号来控制。
2.输入
在 三.位结构 9.上拉电阻/下拉电阻 部分。
五.补充
1.知识补充
上拉/下拉电阻为网上资料自学,如有错误,望指出
2.资料补充
1)哔哩哔哩 江协科技
2)《STM32单片机原理与应用实验教程》清华大学出版社