电子产业一站式赋能平台

PCB联盟网

搜索
查看: 430|回复: 0
收起左侧

STM32单片机I/O口,居然有8种工作模式

[复制链接]

895

主题

895

帖子

9434

积分

高级会员

Rank: 5Rank: 5

积分
9434
发表于 2024-9-8 11:13:00 | 显示全部楼层 |阅读模式

psk4uxj3qx564025160142.gif

psk4uxj3qx564025160142.gif
1 C: r. \7 `4 l% B* r4 f; m& s
点击上方名片关注了解更多
3 T* x( b% @! i
( ?& a' G" {3 D1 J1 C9 m7 A! \* K/ N) X# x- [/ b+ F2 q3 H
今天详细总结一下STM32单片机I/O的8种工作模式,让大家在以后的设计中事半功倍。1 ^% r! |/ ]( A2 `0 N8 Y! W/ N+ b
什么是GPIO?说到这8种工作模式之前,先通俗的解释下GPIO的概念—通用输入输出 General Purpose Input Output 简称GPIO,就是芯片引脚可以通过它们输出高、低电平,也可以通过他们输入、读取引脚的电压、电平状态。# @- D7 E/ J( D  F2 u
接下来讲解的8种工作模式,我们以下图为例进行分析介绍,读懂这张图,大家基本就可以完全理解STM32的GPIO了。
/ i% T' t! v0 D, q4 h# a& C, v

y4qkxzudm3g64025160242.png

y4qkxzudm3g64025160242.png

$ _5 c5 e1 m2 ^9 a2 a$ l1 K四种不同的输出模式推挽输出:
$ `4 x9 P7 @( d5 U; K此模式的引脚可输出高低电平,用于连接和驱动数字设备。关于推挽,部分读者可能有些疑惑,其实是将两个参数相同的NPN、PNP三极管或NMOS、PMOS管以推挽形式布局于电路中,分别担当正负半周波形的放大任务。两对称管仅有一个导通,损耗低且效率高,既能提升电路的带载能力,亦可提高开关速度。电路如图所示,读者可在IO内部图中进行对照查找。. s1 \* ]$ U0 U3 I3 ]

5ubxcfohfd564025160342.png

5ubxcfohfd564025160342.png

, H, L) V( k" D4 b2 o/ X开漏输出:2 k- n$ R3 ~2 _  N2 g
此模式下,引脚模拟 NMOS 的漏极,关闭 PMOS以消除其影响。此时该引脚仅能输出低电平,需加接上拉电阻以获得高电平。有人可能质疑,这种方式不如推挽输出实用。然而,开漏输出具备独特优势,例如:1、适用于连接主控电平不匹配的器件,只需将上拉电阻的上拉端连接至对方电平;2、以小博大,借助外部电路驱动能力,降低内部电流需求,内部仅需较小栅极驱动电流。但需注意,由于上拉电阻的存在,可能导致上升沿延迟,详情请参阅我之前关于电平匹配的文章。# v" O/ Q3 h  P

qpbdwfxnmmo64025160442.png

qpbdwfxnmmo64025160442.png
& t' [( a* {: M# p5 G2 Q
复用推挽输出、复用开漏输出:顾名思义该模式下就是将引脚复用为其他功能,不再是简单的GPIO。像我们常用的UART、SPI等的输出引脚就是复用的推挽输出,而我们常用的I2C就是复用的开漏输出,这时大家就应该知道为什么我们在用I2C的时候需要上拉电阻了吧。这里给大家埋个伏笔——用I2C时为什么要开漏呢?
8 D1 q- O/ {! Z  i四种不同的输入模式在这里我们来探讨一种常见的输入模式——“浮空输入”,该模式主要用于检测外部设备(如按键)所处的高/低电平状态。具体解释如下,当处在“浮空输入”模式时,上拉电阻和下拉电阻均未与输入端相连,使得引脚的电平状态变得未知。若在此情况下读取数据便会发现其毫无意义。为了避免此类问题,建议在实际应用中务必确保引脚处于正确的连接状态。
3 r# l/ ]+ v: K# s* f( D

ec2mxkqxhjj64025160542.png

ec2mxkqxhjj64025160542.png

* N+ K( u: [2 e6 y& L! M上拉、下拉输入:基本看名字大家就已经知道这种模式是怎么回事了,上图中如果上面红圈电阻接入就是上拉输入,下面红圈电阻接入就是下拉输入。上一段我说过按键输入检测用浮空输入模式,如果用上拉、下拉模式就更简单了,就可以省掉外部的上下拉电阻节约项目成本。) O6 \9 ]6 ?0 L' @. u3 m& P" j
模拟输入:这个模式也是我们非常常用的了,那就是引脚设置为STM32内部ADC的模拟信号输入。值得注意的是这种模式就不是所有的IO都有的功能了,需要带ADC的IO口才可以设置。% J/ y. T. Q+ W0 D7 [
补充说明针对IO引脚内的两个保护二极管,先前认为其作用为钳位。然而,在参加ST的研讨会时,官方明确表示并非用于钳位,而是用于ESD防护。当引脚用作ADC输入时,模拟信号不得超过3.6V,否则将导致损坏。! V. F) }1 N+ \9 Q& r& @
尽管芯片引脚内置二极管保护,但建议在设计时,若引脚需引出板外,应额外添加TVS二极管以增强防护。由于引脚暴露在外,易受静电等环境因素影响。例如,下载接口在空间允许的情况下,常配备SOT-23的TVS二极管进行保护。
% `6 J' k( q5 e4 Y9 K) C总结到这里大家会发现今天所讲的全都是硬件层面的,大家从硬件层面搞懂这几种模式,软件上就简单了,按照datasheet上面的说明进行配置就可以了。
& r7 X1 ]$ t9 u4 f& _

3w4pt1mpppr64025160642.jpg

3w4pt1mpppr64025160642.jpg
" d8 L& E5 }% G3 X

uzqvnix3y1n64025160743.jpg

uzqvnix3y1n64025160743.jpg

" b* k7 n6 C% f2 \% o6 _声明:
1 s" G9 U8 c$ S- u; P# e/ n声明:文章来源网络。本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。投稿/招聘/推广/宣传/技术咨询 请加微信:woniu26a推荐阅读▼: |1 P( `( }; t; e/ E
电路设计-电路分析
) l- a0 @  W. g0 t' D( Lemc相关文章6 W" w% d- z$ V
电子元器件/ {! p# T/ D5 \# f9 j; F( B) Y9 k% M
后台回复“加群”,管理员拉你加入同行技术交流群。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


联系客服 关注微信 下载APP 返回顶部 返回列表