GPIO是STM32的通用输入输出口,可配置为8种工作模式。其引脚电平为0V~3.3V(低/高电平对应0/1),部分引脚可容忍5V输入。输出模式下,可通过寄存器控制引脚输出高低电平,用以驱动LED、控制蜂鸣器或模拟通信协议时序。输入模式下可读取引脚电平,用于检测按键、模块信号或进行ADC电压采集。
GPIO内部结构包括寄存器、驱动器及保护电路。每个GPIO模块包含16个引脚,通过32位寄存器(仅低16位有效)进行控制。输入部分包含保护二极管、可配置的上/下拉电阻及施密特触发器(用于波形整形),并支持模拟输入与复用功能输入。输出部分可通过数据寄存器或片上外设控制,采用推挽(高低电平均有驱动能力)或开漏(仅低电平有驱动能力)模式,由一对MOS管实现。
具体模式包括:浮空/上拉/下拉输入、模拟输入、推挽/开漏输出、复用推挽/开漏输出。模拟输入会关闭数字输入功能,专用于ADC;其他模式均保持输入有效。驱动LED或蜂鸣器时,常采用低电平驱动的电路设计,并需串联限流电阻。对于功率较大的设备,可借助三极管开关电路进行驱动。
67
zechuan