GPIO(General Purpose Input Output)通用输入输出口
可配置为8种输入输出模式
引脚电平:0V~0.3V,部分引脚可容忍5V
输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。
GPIO的基本结构
GPIO的外设按照GPIOA、GPIOB 等来命名
每个GPIO外设有16个引脚,编号从0~15(PA0~PA15)
每个GPIO模块包括寄存器和驱动器。
内核通过APB2对寄存器读写,寄存器的低16位对应有外接引脚
驱动器用以增强驱动能力
GPIO基本结构
通过二极管保护电路,上方VDD为3.3V, 下方VSS为0V,输入大于3.3V时,引脚与VDD导通;小于0V时,与VSS导通。
利用上拉和下拉电阻,配置成上拉输入和下拉输入模式,若两个都断开,则为浮空输入模式
施密特触发器:整形作用,将失真的信号整形(采用两个比较阈值来判断,可以有效避免因信号波动造成的输出抖动现象)
推挽输出模式下,P-MOS和N-MOS均有效,数据寄存器为1 时,上管导通,下管断开,输出接到VDD,输出高电平;数据寄存器为0时,上管断开,下管导通,输出接到VSS,输出低电平。这种模式下,高低电平均有较强的驱动能力。也称为强推输出模式。
此篇可能有些不够清晰,可以看发布的“STM32 GPIO口简析”