0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解STM32单片机I/O的几种工作模式

汽车玩家 来源:HACK实验室 作者:HACK实验室 2020-05-03 18:22 次阅读

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

先说说GPIO

在聊这8种工作模式之前,我想先说一下GPIO的概念—通用输入输出 General Purpose Input Output 简称GPIO,就是芯片引脚可以通过它们输出高、低电平,也可以通过他们输入、读取引脚的电压、电平状态。
下面的8种工作模式我将围绕下图进行分析介绍,读懂这一张图大家基本就可以完全理解STM32的GPIO了。希望大家仔细的看一看。

详解STM32单片机I/O的几种工作模式

四种不同的输出模式

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

详解STM32单片机I/O的几种工作模式

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

详解STM32单片机I/O的几种工作模式

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

四种不同的输入模式

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

详解STM32单片机I/O的几种工作模式

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

模拟输入:这个模式也是我们非常常用的了,那就是引脚设置为STM32内部ADC的模拟信号输入。值得注意的是这种模式就不是所有的IO都有的功能了,需要带ADC的IO口才可以设置。

补充说明些东西

关于IO引脚内部的两个保护二极管,很久以前看到有人说是用来钳位的,后来我在参加ST的研讨会时问过官方,官方答复说并不是用于钳位的而是用于做ESD保护的。当引脚作为ADC输入的时候我们必须保证输入模拟信号不超过3.6V,5V是不可以的。

上面说了芯片引脚内部有二极管保护,但是我建议大家在做设计时如果引脚引出板外最好格外再加TVS二极管来做加强保护,因为引脚连出板外很容易受静电等外界因素伤害。比如下载接口,我在空间充足的时候都会放上一个SOT-23的TVS二极管来做保护。

总结

到这里大家会发现我今天所讲的都是硬件层面的,而非软件层面上的具体设置。其实如果大家从硬件层面搞懂这几种模式,软件上就简单了,按照datasheet上面的说明进行配置就可以了。

最后来说一下近况,临近年底工作上比较忙,之前说的几个项目都跳票了,实在抱歉。但是大家不要担心,忙过这会我会腾出更多时间投身于开源项目,2020年我给自己制定的目标之一就是做更多的开源项目与大家分享。

最后的最后,感谢支持我淘宝店铺“HACK实验室”的朋友们!

在售的LED矩阵时钟

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6011

    文章

    44153

    浏览量

    624373
  • STM32
    +关注

    关注

    2249

    文章

    10725

    浏览量

    350316
收藏 人收藏

    评论

    相关推荐

    STM32单片机有哪几种常见的开发环境?

    STM32单片机是一款广泛应用于嵌入式系统开发的单片机,针对其开发,有以下几种常见的方式:STM32单片
    的头像 发表于 05-18 08:04 860次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>有哪<b class='flag-5'>几种</b>常见的开发环境?

    STM32单片机最小化系统设计原理

    STM32最小系统,就是能让STM32单片机能够正常工作所必须拥有的组成部分的集合,也是STM32单片机
    发表于 04-23 14:54 1501次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>最小化系统设计原理

    推荐!单片机I/O的常用驱动与隔离电路

    使用。针对电气控制产品的特点,本文讨论了几种单片机I/O的常用驱动和隔离电路的设计方法,对合理地设计电气控制系统,提高电路的接口能力,增强系统稳定性和抗干扰能力有实际指导意义。 1、
    发表于 03-12 09:24

    STM32单片机的特点和功能是什么

    级功能,能够满足各种高性能应用的需求。 低功耗:STM32单片机具有多种低功耗模式,如睡眠模式、停止模式和待机
    的头像 发表于 01-03 15:33 9015次阅读

    单片机程序调试常见问题 STM32单片机一般有几种调试方式

    SWD是STM32单片机常用的调试模式之一。它通过单一的调试引脚(SWDIO)和时钟引脚(SWCLK)来进行调试和编程操作。使用SWD调试模式,可以进行单步调试、断点调试、查看寄存器状
    的头像 发表于 12-02 17:14 2796次阅读

    GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具

    GD32、STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 GD32/STM32
    发表于 11-10 15:03

    单片机进入掉电模式,怎么降低整体功耗?

    单片机系统在单片机进入掉电模式下,待机电流达到了200多uA,如果进入待机前将单片机所有I/O
    发表于 11-06 07:06

    直流电子负载的几种工作模式原理详解

    直流电子负载的几种工作模式原理详解  直流电子负载是一种测试电源能力的设备,其工作原理是通过将一个可控的电阻与负载相连,使负载产生特定的电压
    的头像 发表于 10-26 11:38 1288次阅读

    一款漂亮的板子 #单片机 #FreeRTOS #stm32 #stm32单片机

    单片机STM32
    百问网官方
    发布于 :2023年09月20日 15:26:00

    STM32单片机的八种GPIO口模式

    GPIO 是通用输入/输出端口的简称,本文以STM32为例进行说明,其他的单片机功能上都是大同小异,学会STM32的GPIO,我们可以触类旁通。
    发表于 09-07 11:38 2206次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>的八种GPIO口<b class='flag-5'>模式</b>

    STM32单片机的GPIO输入、输出模式与配置方法

    STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接
    发表于 08-15 18:23 6435次阅读

    GPIO口的结构和工作模式(2)#单片机

    单片机STM32
    未来加油dz
    发布于 :2023年08月11日 16:24:31

    GPIO口的结构和工作模式(1)#单片机

    单片机STM32
    未来加油dz
    发布于 :2023年08月11日 16:23:42

    一文详解GD32单片机STM32单片机

    GD32单片机是中国龙芯集成电路公司推出的一款ARM Cortex-M3内核的微控制器。它具有与STM32单片机相同的架构和指令集,但是价格相比STM32更为便宜。同时,GD32
    发表于 08-09 16:58 8523次阅读

    单片机STM32的引脚模式设置

    单片机STM32的引脚有多种方式可以选择。
    发表于 07-03 16:42 2847次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>STM32</b>的引脚<b class='flag-5'>模式</b>设置