参考:
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
总结一下:
输入主要分为:
1、浮空输入
2、模拟输入
3、上拉输入
4、下拉输入
浮空、上拉、下拉都要经过经过施密特触发器进入输入数据寄存器。
浮空输入下端口的电平信号可进入数据寄存器,但是端口悬空时,读入的信号是不确定的。
上拉输入和下拉输入状态下,如果IO端口有高低电平,依照端口状态输入到数据寄存器;如果IO端口是悬空的,则IO端口的上拉或者下拉状态决定端口的电平高低。
模拟输入下不经过施密特触发器,模拟信号直接进入片上外设。
输出可以分为:
1、开漏输出
2、开漏复用输出
3、推挽输出
4、推挽复用输出
开漏(复用)输出状态下,只有N-MOS管起作用,如果输出控制电路是低电平,可以传输到端口(即端口可以体现输出),但是如果输出控制电路是高电平,端口的电平取决于上拉还是下拉的状态。
(开漏复用知只是片上外设写输出寄存器)
推挽输出是P-MOS管和N-MOS管都起作用,输出控制电路不管是高电平还是低电平都能输出。
(复用状态也是片上外设写输出寄存器)