GPIO的基本结构可以被视为APB2总线连接了寄存器,接到驱动电路来控制IO口的模式
由于IO口只有16个位,然而stm32有32位,所以寄存器只有底16位有效。
GPIO的结构基本可以分为两个部分
一:GPIO的输入
通过IO引脚连接到保护电路(如果输入的电压高于VDD则二极管导通,不走内电路,如果低于VSS同理);然后连接到上下拉电阻(通过配置寄存器来控制输入模式),不配置的话为浮空输入,若引脚不接的话,输入的电平不确定。
接到施密特触发器:门电路有一个阈值电压,当输入电压从低电平上升到阈值电压或从高电平下降到阈值电压时电路的状态将发生变化。施密特触发器是一种特殊的门电路,与普通的门电路不同,施密特触发器有两个阈值电压,分别称为正向阈值电压和负向阈值电压。
二:GPIO输出
位设置/清除寄存器:输出寄存器在被操控时只能被整体读写,所以为了方便单独位的操控,有了位寄存器,他的作用就是方便我们单独改写一位;它的原理是,无论是设置还是清除模式,被置0的位都不变,被置1的发生改变,如果是设置模式,那么被置1的变为1;如果是清除模式,被置1的变为0。
片上外设和输出寄存器连接到输出控制,到两个MOS管:具体的输出模式可以看这里http://t.csdn.cn/7tfp6