学习STM32的第一个外设GPIO(2)——GPIO的输出

发布时间 2023-04-07 20:00:51作者: 整点薯条拯救一切

【1】GPIO位结构

 

 【1-1】输入部分

  1. 为了保护IO引脚,上下各接一个保护二极管,用于限幅输入电压。
  2. 上面二极管接VDD(3.3V),下面的二极管接VSS(0V)。
  3. 如果输入电压比3.3V还要高,上面二极管导通,输入电压产生的电流会直接流入VDD而不是内部电流。
  4. 如果输入电压比0V还要低,相对于VSS电压是负电压,下方二极管导通,电流直接从VSS流出去,不会汲取内部电流。
  5. 如果电压在0到3.3V之间,两个二极管均不导通

【1-1-2】上拉电阻和下拉电阻

  1. 上拉输入模式(默认为高电平的输入模式)——上面导通,下面断开。引脚悬空时,上拉电阻保证引脚的高电平
  2. 下拉输入模式(默认为低电平的输入方式)——上面断开,下面导通
  3. 浮空输入模式——上下都断开
  4. 其作用是为了给输入提供一个默认的输入电平。如果什么都不接,输入处于一个浮空的状态,引脚的输入电平极易受到外界干扰而改变。为了避免引脚悬空导致输入数据不确定,需要加上上拉或下拉电阻。

【1-1-3】用肖特基管构成的施密特触发器:对输入电压进行整形(高于上限输出高,低于下限输出低)

 

 【1-1-4】整形后的波形写入数据寄存器,用程序读取数据寄存器对应的某一位数据 = 端口的输入电平。

【1-2】输出部分:

  1. 如果需要对某一位进行置1操作,在位设置寄存器的对应位写1即可(对应位置1,剩下为0的位保持不变)。这样的操作只操作1位不影响其他位,而且是一步到位。
  2. 如果需要对某一位进行置0操作,在位清除寄存器的对应位写1即可

【1-3】输出控制在之后接到了两个MOS管

 

  1.  MOS管是一种电子开关,由信号控制开关的导通和关闭,开关负责将IO口接到VDD或者VSS。
  2. 在推挽输出模式下,P-MOS和N-MOS均有效。数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,输出高电平。数据寄存器为0时,上管断开,下管导通,输出直接接到VSS,输出低电平。
  3. 在开漏输出模式下,P-MOS无效,只有N-MOS在工作。数据寄存器为1时,下管断开,输出全断,处于高阻模式。数据寄存器为0时,下管导通,输出直接接到VSS,输出低电平。
  4.