STM32-GPIO

发布时间 2024-01-05 23:15:49作者: #define西风

  1. GPIO_Mode_AIN 模拟输入
  2. GPIO_Mode_IN_FLOATING 浮空输入
  3. GPIO_Mode_IPD 下拉输入
  4. GPIO_Mode_IPU 上拉输入
  5. GPIO_Mode_Out_OD 开漏输出
  6. GPIO_Mode_Out_PP 推挽输出
  7. GPIO_Mode_AF_OD 复用开漏输出
  8. GPIO_Mode_AF_PP 复用推挽输出
1. 两个保护二极管分别保证电压过高或过低时引走电流,避免对内部造成损害(正常0-3.3v);
2. 两个上拉和下拉输入电阻开关,两个都不接通为浮空状态,上拉电阻开关接通为上拉输入,可称作默认为高电平的输入模式,下拉同理,两个电阻都较大,属于弱上拉和弱下拉,为了尽量不影响正常的输入操作。
3. 施密特触发器(TTL肖特基触发器):如果输入电压大于某一值,输出就会瞬间升为高电平,如果输入电压小于某一值,输出就会瞬间降为低电平。在中间留有波动范围,可有效避免因信号波动造成的输出抖动现象;经过施密特触发器,即可输入数据寄存器;
4. 来自片上外设和输出数据寄存器都可以控制输出,如果选择通过输出数据计算器进行控制,就是普通I/O口输出,写在这个数据寄存器的某一位就可以操作对应的端口。
5. 位设置/清除寄存器可以用来单独操作输出数据寄存器的某一位,而不影响其他位。
6. P-MOS和N-MOS管是一种电子开关,信号控制开关的导通和关闭,开关负责将IO口接到VDD或VSS,有推挽、开漏或关闭三种输出方式;
7. 推挽输出模式下,P-MOS和N-MOS均有效,数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,就是输出高电平;为0时则相反,接到VSS,就是输出低电平,这种模式下高低电平均有较强的驱动能力,所以该模式也叫强推输出模式,在此模式下STM32对IO口具有绝对控制权,高低电平都由STM32说的算。
8. 开漏输出模式下,P-MOS无效,只有N-MOS工作,数据寄存器为1时,下管断开,这时输出相当于断开也就是高阻模式;为0时,下管导通,输出直接接到VSS,也就是输出低电平,这种模式只有低电平具有驱动能力,高电平没有驱动能力。该模式可作为通信协议的驱动方式,比如IIC总线的引脚就是使用的该模式,在多机通讯的情况下,可避免各个设备的相互干扰;还可用于输出5V电平信号,如在IO口上接一个上拉电阻到5V的电阻,当输出低电平时,由内部的N-MOS直接接VSS,当输出高电平时,由外部的上拉电阻拉高至5V。
9. 关闭状态,当引脚配置为输入模式时,两个MOOS管都无效,也即输出关闭,端口的电平由外部信号控制