本文主要是介绍STM32外设之GPIO的推挽输出和开漏输出模式详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 GPIO结构框图
- 2 推挽输出模式
- 3 开漏输出模式
1 GPIO结构框图
先来看一下GPIO输出的部分:
2 推挽输出模式
所谓的推挽输出模式,是根据这两个 MOS管的工作方式来命名的。在该结构中输入高电平时,上方的 P-MOS导通,下方的 N-MOS 关闭,对外输出高电平;而在该结构中输入低电平时,N-MOS管导通,P-MOS 关闭,对外输出低电平。当引脚高低电平切换时,两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的低电平为 0伏,高电平为 3.3 伏。
下图为推挽输出模式时的等效电路:
3 开漏输出模式
在开漏输出模式时,上方的 P-MOS 管完全不工作。如果我们控制输出为 0,低电平,则 P-MOS 管关闭,N-MOS 管导通,使输出接地,若控制输出为 1 (它无法直接输出高电平)时,则 P-MOS 管和 N-MOS 管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须接上拉电阻(可用 STM32的内部上拉,但建议在 STM32外部再接一个上拉电阻)。
下图为开漏输出模式的等效图:
开漏输出模式的常见应用场景:
- 开漏输出一般应用在 I2C、SMBUS 通讯等需要“线与”功能的总线电路中。
- 还用在电平不匹配的场合,如需要输出 5 伏的高电平,就可以在外部接一个上拉电阻,上拉电源为 5 伏,并且把 GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出 5 伏的电平。
这篇关于STM32外设之GPIO的推挽输出和开漏输出模式详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!