本文主要讲解“STM32单片机I/O的工作模式有哪些”,简单明了,易学易懂。现在,请跟随边肖的思路,一起学习和学习“STM32单片机I/O的工作模式有哪些”!
先说说GPIO
在讲这八种工作模式之前,我想先讲一下GPIO mdash的概念;通用输入输出缩写为GPIO,即芯片引脚可以通过它们输出高低电平,也可以通过它们输入和读取引脚的电压和电平状态。
我将围绕下图分析介绍以下八种工作模式。看完这个图,基本可以完全理解STM32的GPIO了。希望大家可以仔细看看。
四种不同的输出模式
推挽输出:在这种模式下,引脚可以输出高电平和低电平,并可以连接和驱动数字设备。对于推拉,有些小伙伴可能不知道是什么意思。其实很简单,就是两个相同参数的NPN、PNP三极管或NMOS、PMOS晶体管以推挽方式存在于电路中,各自负责正负半周波形放大。两个对称管一次只有一个导通,损耗小,效率高,既能提高电路的负载能力,又能提高开关速度。电路如下图所示,可以在IO内部图中对比。
开漏输出:在这种模式下,该引脚相当于连接到上图所示的NMOS漏极,当其关闭并移除时,PMOS不存在。此时,该引脚只能输出低电平,不能输出高电平。它需要一个拉电阻来获得高电平。这个时候,肯定有朋友在疑惑,这个东西不如推拉输出好用,不对!开漏输出有一些特殊的优点,如:1 .可用于连接与主电平不匹配的器件,只需将上拉电阻的上拉端接至另一电平即可;2.利用外部电路的驱动能力降低内部电流,内部只需要很小的栅极驱动电流。缺点是由于上拉电阻,上升沿会有延迟。你可以看我上一篇关于级别匹配的文章,里面有介绍。
多路推挽输出和多路开漏输出:顾名思义,这种模式是为了复用引脚实现其他功能,而不是简单的GPIO。我们常用的输出引脚(如UART和SPI)是多路复用推挽输出,而我们常用的I2C是多路复用开漏输出,因此我们应该知道为什么在使用I2C时需要上拉电阻。这里是给大家的一个铺垫mdashmdash我用I2C的时候为什么要打开排水管?知道的朋友可以在留言区回复,以后有机会分析I2C我会详细告诉你。
四种不同的输入模式
浮动输入:这种输入模式一般用于检测外部高低电平状态,如按键。根据下面IO的内部图,浮动输入时上拉电阻和下拉电阻没有连接,管脚电平状态不确定。如果引脚悬空,在这种模式下读出的数据将毫无意义。
上拉下拉输入:基本上大家都知道这是什么模式。在上图中,如果上面的红圈电阻接入是上拉输入,下面的红圈电阻接入是下拉输入。上一段我说浮动输入模式是用来进行按键输入检测的。如果采用上拉和下拉模式,会更简单,可以省去外部下拉电阻,节省工程成本。
输入:这种模式也是我们非常常用的,即引脚设置为STM32内部ADC的模拟信号输入。值得注意的是,这个模式并不是所有IO的功能,带ADC的IO口才是可以设置的。
补充说明些东西
关于IO引脚内部的两个保护二极管,我看到有人说是很久以前用来箝位的。后来参加ST的研讨会,问了一下官方,官方回答说不是用来箝位的,是用来ESD保护的。当管脚作为ADC的输入时,我们必须保证输入模拟信号不超过3.6V,不允许5V。
上面说芯片引脚内部有二极管保护,但是我建议在设计的时候,如果引脚是引出板的话,最好加上TVS二极管来加强保护,因为引脚引出板的时候很容易被静电等外部因素损坏。比如,当我有足够的空间时,我会放一个SOT-23 TVS二极管进行保护。
感谢阅读。以上就是“STM32单片机I/O的工作模式有哪些”的内容。看完这篇文章,相信大家对STM32单片机I/O的工作模式是什么的问题有了更深的理解,具体用法还需要通过实践来验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/71146.html