1.浮空输入_IN_FLOATING
浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果该引脚在悬空状态下,读取该端口的电平状态是不确定的。
2.上拉输入_IPU
在浮空输入的基础上加了上拉电阻,防止输入端悬空,减少外部电流对芯片的干扰,默认状态为高电平。
3.下拉输入_IPD
在浮空输入的基础上加了下拉电阻,防止输入端悬空,减少外部电流对芯片的干扰,默认状态为低电平。
4.模拟输入_AIN
模拟输入状态下,信号直接进入AD采集寄存器,从输入数据寄存器是读不到电平变化的。
5.开漏输出_OUT_OD
CPU在编号1处写入数据,如果写入的是逻辑1,则编号3的N-MOS管处于关闭状态,端口输出的电平由外部上拉电阻决定;如果写入的是逻辑0,则编号3的N-MOS管处于开启状态,编号3的电平被拉到了零电平。
在输入部分,施密特触发器处于开启状态,可以通过输入数据寄存器监控IO端口的输出状态,根据这个特性,可以实现虚拟IO端口的双向通信。
芯片内部输出部分有多个响应速度不同的驱动电路可以选择,有2MHz、10MHz、50MHz;通过选择不同速度的驱动电路,达到噪声控制和降低功耗的目的,高频驱动噪声高,低频驱动信号易失真。
适合电流型驱动,电流20mA以内。
6.推挽输出_OUT_PP
推挽输出在开漏输出的基础上加了P-MOS管,当输出逻辑1时,编号3处P-MOS管导通,N-MOS管截止,达到输出高电平,当输出0时,编号3处P-MOS管截止,N-MOS管截止,达到输出低电平。
该模式下也可在输入寄存器读到端口电压变化信号。
7.开漏复用输出_AF_OD
开漏复用输出和开漏输出基本一样,只是在数据的输入源不是输出数据寄存器,而是来自其他地方。
8.推挽复用输出_AF_PP
推挽复用输出和推挽输出区别就是输出的数据不是来自输出数据寄存器,而是来自其他外设,如果外设未被配置激活,则IO端口的输出信号无法确定。