目录
1、基本结构
STM32 GPIO是通用输入/输出端口的英文简称,其可实现输入、输出、驱动、通信等功能,STM32的I/O 端口有8种模式(4种输入模式和4种输出模式),每个 I/O 端口位支持3种最大翻转速度(2MHz、10MHz、50MHz),均可自由编程,但I/O 端口寄存器必须按 32 位字、半字(16位)或字节(8位)进行访问,具体模式如下所示:
- 浮空输入
- 上拉输入
- 下拉输入
- 模拟输入
- 开漏输出
- 推挽输出
- 复用功能推挽输出
- 复用功能开漏输出
以STM32L011为例(其他STM32处理器大同小异),GPIO基本结构如下所示:
关键器件解析:
1、保护二极管:防止I/O引脚外部过高、过低的电压输入,当引脚电压高于VDDIOx时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。
2、开关:开关为TTL肖特基触发器,将模拟信号转化为0和1的数字信号,但当GPIO作为ADC采集电压通道时,此时信号不再经过触发器进行TTL电平转换。
3、P-MOS、N-MOS:单元电路使得GPIO具有“推挽输出”和“开漏输出”的功能。
2、4种输入模式
STM32具有浮空输入、上拉输入、下拉输入和模拟输入4种输入模式。
浮空输入模式,I/O端口的电平信号由外部输入决定,电平状态不确定,最终直接进入输入数据寄存器。浮空输入通常用于配置USART的RX引脚,如下图所示:
上拉输入模式,I/O端口悬空(在无信号输入)的情况下,电平状态保持在高电平,当输入低电平时,电平状态是低电平,最终直接进入输入数据寄存器,如下图所示:
下拉输入模式,I/O端口悬空(在无信号输入)的情况下,电平状态保持在低电平,当输入高电平时,电平状态是高电平,最终直接进入输入数据寄存器,如下图所示:
模拟输入模式,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等。模拟输入通常应用于ADC模拟输入,或者低功耗下省电等情景,如下图所示:
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:STM32 GPIO的原理、特性、选型和配置