基础——STM32F4的GPIO模式

article/2025/9/22 12:29:04
stm32的GPIO的配置模式包括:
1. 模拟输入;
2. 浮空输入;
3. 上拉输入;
4. 下拉输入;
5. 开漏输出;
6. 推挽输出;
7. 复用开漏输出;
8. 复用推挽输出

1.模拟输入

从上图我们可以看到,我觉得模拟输入最重要的一点就是,他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我觉得这一点也是很好理解的,因为输入数据寄存器中存放的不是0就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。该输入模式,使我们可以获得外部的模拟信号。

2.浮空输入

该输入状态,我的理解是,它的输入完全由外部决定,我觉得在数据通信中应该可以使用该模式。应为在数据通信中,我们直观的理解就是线路两端连接着发送端和接收断,他们都需要准确获取对方的信号电平,不需要外界的干预。所以我觉得这种情况适合浮空输入。比如我们熟悉的I2C通信。

3上拉输入

上拉输入就是在输入电路上使用了上拉电阻。这种模式的好处在于我们什么都不输入时,由于内部上拉电阻的原因,我们的处理器会觉得我们输入了高电平,这就避免了不确定的输入。这在要求输入电平只要高低两种电平的情况下是很有用的。

4下拉输入

和上拉输入类似,不过下拉输入时,在外部没有输入时,我们的处理器会觉得我们输入了低电平。

5开漏输出

开漏输出,输出端相当于三极管的集电极,所以适合与做电流驱动的应用。要得到高电平,需要上拉电阻才可以。

6推挽输出

推挽输出使用了推挽电路,结合推挽电路的特性,它是由两个MOSFET组成,一个导通的同时,另外一个截至,两个MOSFET分别连接高低电平,所以哪一个导通就会输出相应的电平。推挽电路速度快,输出能力强,直接输出高电平或者低电平。

7、8复用开漏和复用推挽 

我们知道这只是对GPIO的复用而已。使普通的GPIO具有了别的功能。

浮空输入:

由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

上拉输入/下拉输入/模拟输入:理解容易

推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小效率高。输出既可以向负载灌电流,也可以从负载抽取电流推拉式输出级既提高电路的负载能力,又提高开关速度。

详细理解:


 

如图所示,推挽放大器的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加时,另一个“臂”的电流则减小,二者的状态轮流转换。对负载而言,好像是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经VT3拉出。这样一来,输出高低电平时,VT3 一路和 VT5 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。因此,推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

开漏形式的电路有以下几个特点:

1.利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。

2.一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。上拉电阻的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度

3.OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

4.可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成与逻辑关系。这也是I2CSMBus等总线判断总线占用状态的原理。补充:什么是“线与”?:

在一个结点(线),连接一个上拉电阻到电源VCCVDDnNPNNMOS晶体管的集电极C或漏极D,这些晶体管的发射极E或源极S都接到地线上,只要有一个晶体管饱和,这个结点(线)就被拉到地线电平上.因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS),晶体管就会饱和,所以这些基极或栅极对这个结点(线)的关系是或非NOR逻辑.如果这个结点后面加一个反相器,就是或OR逻辑.

其实可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:


该图中左边的便是推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平。右边的则可以理解为开漏输出形式,需要接上拉。

复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。
在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电       平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

http://chatgpt.dhexx.cn/article/r3WdjGlY.shtml

相关文章

GPIO输入输出各种模式(推挽、开漏、准双向端口)详解

技术交流是便宜的博客地址:http://blog.csdn.net/techexchangeischeap 概述 能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多,最近在百度上搜索了大量关于这部分的资料,对于其中很多问题的说法并不统一。本文尽可能的将IO涉…

卡尔曼滤波器(哔哩哔哩徐亦达)

1、尖帽子,表示是估计量而不是真实量。 2、从下面公式可以大概得出高斯噪声的方差和d级别差不多。 TDOA文献中的公式 3、卡尔曼滤波器主要记住五个公式: 4、卡尔曼滤波器的应用:包括机器人导航,控制,传感器数据融合甚至在军事方…

李航/徐亦达 统计学习方法第九章EM算法及其推广总结和习题答案

强烈推荐徐亦达老师关于EM算法的讲解视频,本文根据徐老师和李航老师统计学习方法整理,由于公式推导太多,笔记为手写。其中包含混合高斯模型的理解,形象化解释,以及习题链接。 习题 习题9.1和9.3 习题9.4

徐亦达老师-机器学习教学视频共76集(下载自优酷)

链接:http://pan.baidu.com/s/1bpNzqSB 密码:naqe 徐老师主页:http://www-staff.it.uts.edu.au/~ydxu/ 转载于:https://www.cnblogs.com/zhangliustc/p/5998836.html

刷新校史!985副研究员,以独立作者身份,研究成果被数学顶级期刊录用!

来源:华中科技大学&青塔等,信息仅作分享之用 据华中科技大学数学中心10月8日消息,郇真副研究员的文章“Representations of Lie 2-groups and 2-Vector Bundles”被顶刊Acta Mathematica接收。 据悉,郇真副研究员是新中国成立…

机器学习笔记之狄利克雷过程(二)基于标量参数作用的推导过程

机器学习笔记之狄利克雷过程——基于标量参数作用的推导过程 引言回顾:狄利克雷过程——基本介绍狄利克雷过程——定义小插曲:狄利克雷分布的简单性质 关于标量参数作用的推导过程 引言 上一节以高斯混合模型为引,简单介绍了狄利克雷过程( D…

首发:徐亦达团队新论文推荐(ECCV2020):端到端多人多视角3d动态匹配网络

徐亦达团队在ECCV2020上发表了一篇机器学习论文 End-to-end Dynamic Matching Network for Multi-view Multi-person 3d Pose Estimation(端到端多人多视角3d动态匹配网络) 论文第一作者:黄聪臻韬,本科就读于中国科学技术大学-计算…

独作论文登数学顶刊,浙大女神校友再被提起:32岁在贵州深山投稿,一家出两位院士...

明敏 詹士 发自 凹非寺量子位 | 公众号 QbitAI 最近,华科副研究员以独作身份投中数学顶刊的消息,震惊国内数学圈。 毕竟Acta Mathematica号称是世界上最难投中的数学期刊之一,能拿下此成就的动辄都是院士级人物…… 不过,纵览中国…

【华人学者风采】陈积明 浙江大学

【华人学者风采】陈积明,浙江大学控制科学与工程学院教授,博士生导师。研究领域包括网络优化与控制,数据智能与工业互联网,控制系统安全等。2000和2005年在浙江大学分别获学士和博士学位。2008-2010在加拿大滑铁卢大学访问。历任浙…

学习笔记:徐亦达机器学习:Kalman Filter 卡尔曼滤波——后续推导及代码分析

在开始这个博客之前,首先要感谢一下徐老师。该博客是在观看视频https://www.bilibili.com/video/av24225243/?p1之后,自己的读书笔记。 言归正传,该博文里面的所有符号体系都是徐老师所用的符号,在此记录一下徐老师最后留下的作…

徐亦达 概率模型学习 : hmm

引出: 条件概率 理解为 一对应无限 的函数 上的一个自变量点的情况 p ( x ∣ y ) p(x|y) p(x∣y)是有多种解释的 或者 是隐含了具体应用情况的, 以下内容大概在说: 条件概率 p ( x ∣ y ) p(x|y) p(x∣y) 是 一对应无限映射x(y) 的 一种数学定量描述办法…

【算法】狄利克雷过程 (Dirichlet过程)

本小节是层次狄利克雷过程的笔记。 狄利克雷混合模型DPMM是一种可以自动确定聚类类别数量的聚类方法。 狄利克雷过程DP是“分布的分布”,由2个参数和确定,即。其中是分布参数,值越大,分布越接近于均匀分布,值越小&am…

吴恩达机器学习讲义_悉尼科大徐亦达教授:1000+页机器学习讲义,32 份主题推介...

新智元推荐 来源:专知(ID:Quan_Zhuanzhi) 【新智元导读】悉尼科大徐亦达教授机器学习讲义,总共涵盖 32 个主题,1000页讲义,包括Softmax算法、传统GAN,W-GAN数学,贝叶斯GAN, 蒙托卡罗树搜索,alphaGo学习算…

首发:徐亦达老师的机器学习课件及下载(中文目录)

徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。 徐亦达老师简介 徐亦达,现任悉尼科技大学教授,UTS全球数据技术中心机器学习和数据分析实验室主任。主要…

【资源】首发:徐亦达老师的机器学习课件及下载(中文目录)

徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。 徐亦达老师简介 徐亦达,现任悉尼科技大学教授,UTS全球数据技术中心机器学习和数据分析实验室主任。主要…

徐亦达 概率模型学习 : gmm

单高斯分布 MLE posterior 正比例于 likelihood * prior p ( θ ∣ x ) ∝ p ( x ∣ θ ) ∗ p ( θ ) p(\theta | x) \propto p(x|\theta) * p(\theta) p(θ∣x)∝p(x∣θ)∗p(θ) 参数 θ 的后验分布 ∝ 参数 θ 表示的 x 分布上已知样本有多大概率 ∗ 参数 θ 的先验分布…

首发:徐亦达教授团队最新发表的两篇机器学习论文

徐亦达团队在 Asian Conference on Machine Learning 的发表了两篇机器学习论文,本人得到徐老师授权在本站发布论文。 论文 1:Realistic Image Generation using Region-phrase Attention论文 2:Efficient Diversified Mini-Batch Selection …

隐马尔科夫模型(HMM)算法的理解与超详细推导

今天看了徐亦达教授的HMM讲解,感觉有所收获,并将隐马尔科夫模型算法的推导整理了一下,帮助大家一起理解这个算法。首先我们通过一个股票的案例来引入这个算法,我们来看看这个股票行情和涨跌观测值的一个状态图: 由图中…

python高级在线题目训练-第一套

单选 1、运行下列代码后,a的值为( C )。 myList "Hello World" a myList[3:8] A. llo W B. llo Wo C. lo Wo D. o Wor 2、下列代码的运行结果为( C )。 A.26,73,47,90, B.26,73,47,90 C.26,73,47,18, D.26,73,47,18 3、以下哪个选项可以创建一个范围…