一.GPIO的简介
1.GPIO(General Purpose Input Output)通用输入输出口,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能
2.可配置为8种输入输出模式
3.引脚电平:0V~3.3V,部分引脚可容忍5V
4.输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
5.输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
二.GPIO的结构
APB=Advanced Peripheral Bus,译作高级外设总线。APB主要用于低宽带的周边外设之间的连接。APB又可分为APB1和APB2,APB1总线上连接了一些低速外设和模块,如串口、I2C、SPI等。APB2总线上连接了一些高速外设和模块,如定时器、串行接口、USB等。如下图(系统接口图)。
三. GPIO位结构
保护二极管
芯片的引脚电平0~3.3V,部分引脚可以5V,引脚的两个保护二极管可以防止引脚外部过高或过低的电压输入
1.当引脚电压高于VDD时,上方的二极管导通
防止过高电压进入芯片内部烧坏芯片
2.当引脚电压低于VSS时,下方的二极管导通
施密特触发器
又叫肖特基触发器,具有滤波的作用,让通过的电平输出稳定的高低电平
四.GPIO模式
1.浮空输入
浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。此时,I/O的电平状态是不确定的,一会高一会低,也就是我们所说的浮空,电平状态完全由外部输入决定。
2.上拉输入
上拉输入模式下,上拉电阻开关闭合,下拉电阻开关断开。在没有信号输入的时候,输入端的电平保持在高电平;当输入一个高电平时,此时仍然是高电平;当输入一个低电平的时候,输入端的电平变成低电平。
3.下拉输入模式
下拉输入模式下,下拉电阻开关闭合,上拉电阻开关断开。在没有信号输入的时候,输入端的电平保持在低电平;当输入一个低电平时,此时仍然是高电平;当输入一个高电平的时候,输入端的电平变成高电平。
4.模拟输入模式
模拟输入模式下,I/O端口的模拟信号(电压信号)直接模拟输入到片上外设模块,比如ADC模块等。
5.开漏输出
- 上方的P-MOS管完全不工作;
- 输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出接地;
- 只能输出低电平,不能输出高电平。如果要输出高电平,则需要外接上拉;
- 开漏输出模式一般应用在I2C、SMBUS通信等需要线与(一个为低,全部为低)功能的总线电路中。
6.推挽输出
- 若向结构中输入高电平,经过反向后,上方的P-MOS导通,下方的N-MOS,对外输出高电平;
- 若向该结构中输入低电平,经过反向后,下方的N-MOS管导通,上方的P-MOS关闭,对外输出低电平;
- 当引脚高低电平切换时,两个MOS管轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。
- 推挽输出的低电平为0V,高电平为3.3V。
7.复用开漏和复用推挽
复用开漏和复用推挽模式类似,只是输出的高低电平的来源不同,不是让CPU直接写输出数据寄存器,而是利用片上外设模块的复用功能输出来决定。
五.总结
本章主要介绍了GPIO的定义和GPIO不同模式间的区别与实现方式,希望看完本章能对你有所提高噢