GPIO八大模式

目录

简介

一、推挽输出

二、开漏输出

三&四、复用推挽输出和复用开漏输出

五、浮空输入

六、上拉输入

七、下拉输入

八、模拟输入


简介

GPIO主要有八种模式,分别为推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入、模拟输入。

下面先解释一下,图1中右侧的保护二极管和左侧的寄存器。

图1 I/O口基本结构

 图中右边两个保护二极管,当有静电或瞬间电压波动进入I/O引脚时,若此电压大于VDD(3.3V),则上方的保护二极管导通,将电压引入电源由电源网络吸收,而波动电压小于VSS(0V)时,下方保护二极管导通,波动电压被引入GND中。但此结构只能抵御一瞬间的电压波动,若较长时间将较高的电压接入I/O口依旧会损坏芯片。

 在STM32中部分引脚能够承受5V电压。如图2数据手册中,标出FT的引脚就能够承受5V电压。

图2 数据手册

寄存器是程序与电路之间的桥梁,可以通过程序对寄存器的数据进行修改,或通过程序读取电路的状态。

一、推挽输出

在图1中我们可以看到输出驱动器中,输出控制模块控制着两个MOS管,分别为P-MOS和N-MOS,其作用可以简化为两个开关。要使I/O引脚输出高电平,则P-MOS闭合,N-MOS断开,反之,则P-MOS断开,N-MOS闭合。

二、开漏输出

在开漏输出模式下,只有N-MOS工作,P-MOS一直处于断开状态。

当输出控制输出高电平时,N-MOS闭合小灯泡点亮;当输出控制输出低电平时,N-MOS断开,小灯泡熄灭。注意,这里外接电源为5V,因此,要使用5V容忍的I/O口,否则上方保护二级管长期导通将5V引入到电源中造成损坏。

推挽输出和开漏输出的区别
推挽输出开漏输出
高电平

P-MOS激活,N-MOS断开,

输出电压3.3V

P-MOS断开,N-MOS断开,

输出电压由外部电路决定

低电平

P-MOS断开,N-MOS激活

输出电压0V

P-MOS断开,N-MOS激活

输出电压0V

优点可以直接输出3.3V配合外部电路,更加灵活
缺点只能输出3.3V低电平实际是高阻态,无法输出电流

三&四、复用推挽输出和复用开漏输出

 从图1左侧我们可以看到,输出控制由‘写入’和‘来自片上外设’进行控制。‘写入’路线则是我们常用的HAL_GPIO_WritePin函数控制的输出寄存器,另一个‘来自片上外设’则是如串口、IIC模块控制。由于同时控制会导致输出控制模块不知听谁的,因此产生了复用推挽输出和复用开漏输出。

五、浮空输入

如图1所示, 输入驱动器的虚线框内,两个开关都断开。此时读入的数据和I/O状态一致。

浮空输入的缺陷为当没有数据输入时,读取数据不稳定。

六、上拉输入

如图1所示, 输入驱动器的虚线框内,上面VDD的开关闭合,VSS的开关断开,则为上拉输入。若I/O口为高点平则读取的为高电平,若I/O口为低电平则读取的为低电平。

上拉输入的优势为当I/O口没有信号输入时,它可以将数据稳定在高电平。

七、下拉输入

如图1所示, 输入驱动器的虚线框内,上面VDD的开关断开,VSS的开关闭合,则为下拉输入。若I/O口为高点平则读取的为高电平,若I/O口为低电平则读取的为低电平。

下拉输入的优势为当I/O口没有信号输入时,它可以将数据稳定在低电平。

八、模拟输入

模拟输入是我们需要对一个模拟信号进行读取。
在我们使用单片机的时候,我们有时候需要用AD采集到IO口上面的真实电压。这就有了我们所需要的模拟输入。为了让外部的电压真实的读取到单片机的AD模块,我们既不能闭合上拉和下拉的开关,也不能让信号经过施密特触发器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值