STM32-GPIO八种输入输出模式

本文详细介绍了GPIO的八种输入输出模式,包括浮空、上拉、下拉、模拟输入、推挽输出、开漏输出、开漏复用和推挽复用。讲解了每种模式的工作原理及应用场景,适合嵌入式开发人员参考。

GPIO八种输入输出模式

参考: https://blog.csdn.net/baidu_37366055/article/details/80060962
https://www.cnblogs.com/lweleven/p/mcuioout.html

输入模式

  • 输入浮空 GPIO_Mode_IN_FLOATING
  • 输入上拉 GPIO_Mode_IPU
  • 输入下拉 GPIO_Mode_IPD
  • 模拟输入 GPIO_Mode_AIN

输出模式

  • 推挽输出 GPIO_Mode_Out_PP
  • 开漏输出 GPIO_Mode_Out_OD
  • 开漏复用 GPIO_Mode_AF_OD
  • 推挽复用 GPIO_Mode_AF_PP

在这里插入图片描述

1. 输入浮空

浮空,顾名思义,就相当与此端口在默认情况下什么都不接,呈高阻态。浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值(最有可能)。

2. 输入上拉

将不确定的信号通过一个电阻钳位在高电平。没有输入或输入为高电平时是高电平,输入为低电平时就是低电平。
在这里插入图片描述

3. 输入下拉

将不确定的信号通过一个电阻钳位在低电平。没有输入或输入为低电平时是低电平,输入为高电平时就是高电平。
在这里插入图片描述

4. 模拟输入

信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。
在这里插入图片描述

5. 推挽输出

所谓的推挽输出模式,是根据输出控制的两个MOS管的工作方式来命名的。在该结构中输入高电平时,经过反向后,上方的P-MOS导通,下方的N-MOS关闭,对外输出高电平;而在该结构中输入低电平时,经过反向后,N-MOS管导通,P-MOS关闭,对外输出低电平。当引脚高低电平切换时,两个管子轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的低电平为0V,高电平为3.3V。
在这里插入图片描述

6. 开漏输出

在开漏输出模式时,上方的P-MOS管完全不工作。如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出接地,若控制输出为1 (它无法直接输出高电平)时,则P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。正常使用时必须外部接上拉电阻,由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电压。

Tips:推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。开漏输出一般应用在I2C、SMBUS通讯等需要线与功能1的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出5伏的高电平,就可以在外部接一个上拉电阻,上拉电源为5伏,并且把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5伏的电平。

7. 开漏复用

可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用),端口必须配置成复用功能输出模式。

8. 推挽复用

同开漏复用。


  1. 若有很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangYi0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值