深入分析STM32单片机I/O的8种工作模式

编辑:欢乐麻将 时间:2020-06-30 热度:6656℃ 来源:欢乐麻将在线玩 责编: 欢乐麻将

最近有个朋友在设计低功耗设备,用的是STM32的主控,他知道我做过很多类似的超低功耗项目,于是向我咨询了一些问题,其中就包括I/O口的几种工作模式。今天我就详细的来总结一下这几种工作模式,让大家在以后的设计中知其然也知其所以然。先说说GPIO

在聊这8种工作模式之前,我想先说一下GPIO的概念—通用输入输出 General Purpose Input Output 简称GPIO,就是芯片引脚可以通过它们输出高、低电平,也可以通过他们输入、读取引脚的电压、电平状态。

下面的8种工作模式我将围绕下图进行分析介绍,读懂这一张图大家基本就可以完全理解STM32的GPIO了。希望大家仔细的看一看。

四种不同的输出模式

推挽输出:该模式下引脚可欢乐麻将以输出高低电平,可连接、驱动数字器件。对于推挽有部分小伙伴可能不知道是啥意思,其实很简单,就是两个参数相同的NPN、PNP三极管或者NMOS、PMOS管以推挽方式存在于电路中,各负责正负半周波形放大的任务。两只对称管每次只有一个导通,损耗小效率高,既可以提高电路的带负载能力,又可以提高开关速度。电路如下图所示,大家可以到IO内部图里面对比着找一找。

开漏输出:该模式下引脚就相当于连接到了上图NMOS的漏极,PMOS关闭去掉不存在。这时该引脚只能输出低电平,不能输出高电平,需要引脚加上拉电阻,才能得到高电平。这时一定有小伙伴疑惑,这东西没有推挽输出好用啊,错!开漏输出是有一些特别的优点的,比如:1、可用于连接与主控电平不匹配的器件,只需要将上拉电阻的上拉端连接到对方电平即可;2、以小博大,利用外部电路的驱动能力,减小内部电流,内部只需要很小的栅极驱动电流。缺点就是会有上升沿的延时,因为有上拉电阻的原因,这一点大家可以去阅读一下我的上一篇关于电平匹配的文章,里面有介绍。

复用推挽输出、复用开漏输出:顾名思义该模式下就是将引脚复用为其他功能,不再是简单的GPIO。像我们常用的UART、SPI等的输出引脚就是复用的推挽输出,而我们常用的I2C就是复用的开漏输出,这时大家就应该知道为什么我们在用I2C的时候需要上拉电阻了吧。这里给大家埋个伏笔——用I2C时为什么要开漏呢?知道的小伙伴可以在留言区回复,后面有机会分析I2C时我会详细和大家来说。四种不同的输入模式

浮空输入:这种输入模式一般多用于检测外部高低电平状态,比如按键等。大家结合下面的IO内部图来看,浮空输入时上下拉电阻都没有连接,引脚电平状态不确定,如果引脚悬空时这种模式下读出来的数据是没意义的。

上拉、下拉输入:基本看名字大家就已经知道这种模式是怎么回事了,上图中如果上面红圈电阻接入就是上拉输入,下面红圈电阻接入就是下拉输入。上一段我说过按键输入检测用浮空输入模式,如果用上拉、下拉模式就更简单了,就可以省掉外部的上下拉电阻节约项目成本。

转载请注明:“ 转载地址:/yinleleqi/20200630/11609.html ”。