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矩阵时钟

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

    关注

    6078

    文章

    45583

    浏览量

    673749
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374675
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Infineon C161K/O 16位单片机:高性能与多功能的完美结合

    Infineon C161K/O 16位单片机:高性能与多功能的完美结合 在电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着整个系统的表现。Infineon的C161K/O
    的头像 发表于 03-30 16:15 184次阅读

    单片机 I/O 口到底能带多大电流?开发者必看驱动电路指南03

    很多初学者在做嵌入式项目时,常常会直接用单片机的GPIO去驱动各种负载,比如LED、蜂鸣器、甚至小电机。结果不是芯片发热,就是负载不工作,严重的时候还可能直接烧毁管脚。为什么会这样?GPIO究竟
    的头像 发表于 01-04 09:15 936次阅读
    <b class='flag-5'>单片机</b> <b class='flag-5'>I</b>/<b class='flag-5'>O</b> 口到底能带多大电流?开发者必看驱动电路指南03

    中颖电子8位单片机I/O设置介绍

    在嵌入式系统设计中,单片机I/O端口设置是基础且关键的一环。今天我们来详细解析中颖电子8位单片机I/
    的头像 发表于 12-30 09:37 888次阅读
    中颖电子8位<b class='flag-5'>单片机</b>的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>设置介绍

    单片机解密是什么?

    单片机解密是什么? 单片机解密又叫单片机**,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但已经成 了习惯叫法,我们把CPLD解密,DSP解密都习惯称为
    发表于 12-30 08:19

    单片机原理及应用详解

    单片机(Microcontroller Unit, MCC)  是一种集成计算机核心功能(CPU、存储器、I/O接口等)的微型芯片,广泛应用于嵌入式系统中。以下是其原理及应用的详细介绍: 一、
    的头像 发表于 08-11 13:57 2795次阅读

    单片机最小系统工作原理及搭建

    单片机最小系统是指使单片机正常运行所需的最简电路配置,它是所有单片机应用的开发基础。以下是其核心组成、工作原理及搭建指南: 一、最小系统核心组成
    的头像 发表于 08-11 10:55 4339次阅读
    <b class='flag-5'>单片机</b>最小系统<b class='flag-5'>工作</b>原理及搭建

    单片机的储存优点是什么

    场景。深圳市安凯星科技有限公司在单片机应用开发中,充分利用这些储存优点,为拓邦、朗科、安徽龙多等客户打造了高效稳定的解决方案。 1.集成度高,节省硬件空间 单片机将程序存储器(ROM)、数据存储器(RAM)与 CPU、I/
    的头像 发表于 07-31 10:09 822次阅读

    单片机采用什么电流输出

    能力 单片机I/O 接口直接输出的电流较小,通常在 10-20mA 范围内。这是因为其内部输出电路由小型 MOS 管或三极管构成,主要用于传输控制信号,而非直接驱动大功率设备。例如,8 位
    的头像 发表于 07-30 11:13 1306次阅读

    单片机采用什么电流控制

    的需求。 1.单片机自身的工作电流特性 单片机自身的工作电流主要由内部电路决定,通常在微安级到毫安级之间。例如,8 位单片机在正常
    的头像 发表于 07-30 10:07 899次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 1081次阅读

    STM32项目分享:智能语音台灯(机智云)

    01—项目简介1.功能详解STM32智能语音台灯(机智云)功能如下:STM32F103C8T6单片机作为主控单元按键切换模式,支持自
    的头像 发表于 07-24 18:03 1832次阅读
    <b class='flag-5'>STM32</b>项目分享:智能语音台灯(机智云)

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控
    的头像 发表于 07-23 11:47 2011次阅读

    低功耗单片机工作模式是怎样的?看完这篇你就懂了!

    在物联网、可穿戴设备、智能仪表等领域,低功耗单片机工作模式是设备延长续航能力的核心技术支撑。这类单片机通过精细化的电源管理机制,在保证核心功能运行的前提下,最大限度降低能耗。其工作
    的头像 发表于 07-14 10:39 851次阅读
    低功耗<b class='flag-5'>单片机工作</b><b class='flag-5'>模式</b>是怎样的?看完这篇你就懂了!

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAG与SWD接口对比、驱动安装及官方软件
    的头像 发表于 06-20 17:26 3234次阅读
    使用USB转TTL串口板和ST-LINK调试下载器给<b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>下载程序

    单片机和伺服有什么区别

    : 1. 定义与功能 特性 单片机(Microcontroller) 伺服系统(Servo System) 定义 一种集成CPU、内存、I/O接口的微型计算机芯片,用于控制设备。 一种由伺服电机、编码器
    的头像 发表于 05-26 09:18 1047次阅读