微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

详解STM32-GPIO的八种工作模式

2018-08-31 11:28 来源:互联网 编辑:Angelina

GPIO的八种工作模式详解

浮空输入_IN_FLOATING;

带上拉输入_IPU;

带下拉输入_IPD;

模拟输入_AIN;

开漏输出_OUT_OD;

推挽输出_OUT_PP;

开漏复用输出_AF_OD;

推挽复用输出_AF_PP。

总结一下:4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的工作原理,大家一起来学习一下吧!

一、GPIO浮空输入_IN_FLOATING模式工作原理:

1

以上截图就是浮空输入模式的原理图,图中阴影的部分在浮空输入模式下是处于不工作状态的,尤其是下半部分的输出电路,实际上这时的输出电路与输入的端口处于隔离状态。黄色的高亮部分显示了数据传输通道,外部的电平信号通过左边编号1的I/O 端口进入STM32内部。

经过编号2的施密特触发器整形以后送入编号为3的“输入数据寄存器”在“输入数据寄存器”的另一端(编号4) ,CPU通过内部的数据总线可以随时读出I/O 端口的电平变化的状态。

二、GPIO带上拉输入_IPU 模式工作原理:

2

上图是STM32的GPIO带上拉输入模式的原理图。与前面介绍的浮空输入模式相比,仅仅是在数据通道上面,接入了一个上拉电阻,根据STM32的数据手册,这个上拉电阻阻值介于30K~50K 欧姆。同样,CPU可以随时在“输入数据寄存器”的另一端,通过内部的数据总线读出I/O 端口的电平变化的状态。

三、GPIO带下拉输入_IPD 模式工作原理:

3

对于输入下拉模式的输入,是在数据通道的下部,接入了一个下拉电阻。根据STM32的数据手册,这个下拉电阻阻值也是介于30K~50K 欧姆。

对于要加上拉或下拉电阻:

1.当作单片机作为输入时,假设我们直接在IO端口接一个按键到地(或电源)。因为按键按,于不按管脚都是悬空的。单片机就很难检测按键是否按下。所以人为的接一个上拉(或下拉)。以确定未按下的时候IO输入电平的状态;

2.可以提高芯片的抗干扰能;

3.当单片机的IO口作输出时,如果不接上拉电阻只能提供灌电流。无法输出电流驱动外接设备。这时也需要考虑上拉电阻。这样才可以使IO输出高电平。

四、GPIO模拟输入_AIN 模式工作原理:

4

如果把STM32配置为模拟输入模式时,工作原理就比较简单了,信号从左边编号为1 的端口进,从右边编号为2的一端直接进入STM32单片机的AD模块。细心的朋友可以看到数据通道中上拉、下拉电阻和施密特触发器,这时均处于关断的状态,“输入数据寄存器”就不能反映IO端口上的电平变化的状态了。换句话说,也就是在模拟输入状态下,CPU不能通过“输入数据寄存器”读到IO端口变化的数据了。

以上分析的是GPIO模块IO引脚的输入模式的工作原理,下面介绍一下GPIO输出模式的工作原理。

五、GPIO开漏输出_OUT_OD 模式工作原理:

5

上图是GPIO开漏输出模式的工作原理图。当CPU 在编号1 端通过“位设置/ 清除寄存器”或“输出数据寄存器”写入数据后,该数据位将通过编号2的输出控制电路传送到编号4 的I/O端口。

如果CPU 写入的是逻辑“1 ”,则编号3 的N-MOS管将处于关闭状态,此时I/O 端口的电平将由外部的上拉电阻决定。如果CPU 写入的是逻辑“0 ”,则编号3的N-MOS管将处于开启状态,此时I/O端口的电平被编号3 的N-MOS管拉到了“地”的零电位。

在图中的上半部,施密特触发器处于开启状态,这意味着CPU 可以在“输入数据寄存器”的另一端,随时可以监控I/O端口的状态,通过这个特性,还可以实现了虚拟的I/O端口双向通信:假如CPU 输出逻辑“1 ”。由于编号3 的N-MOS管处于关闭状态,I/O 端口的电平将完全由外部电路决定,因此,CPU 可以在“输入数据寄存器”读到外部电路的信号,而不是它自己输出的逻辑“1 ”。

GPIO口的输出模式下,有3 种输出速度可选(2MHz 、10MHz和50MHz)这个速度是指GPIO口驱动电路的响应速度,而不是输出信号的速度。输出信号的速度与程序有关(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路。用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。高频的驱动电路,噪声很高,当我们的项目不需要比较高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI 性能。当然如果我们的项目要求输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到比较失真的输出信号。

六、GPIO推挽输出_OUT_PP模式工作原理:

6

GPIO的推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管。当CPU输出逻辑“1 ”时,编号3 处的P-MOS管导通,而下方的N-MOS管截止,达到输出高电平的目的。当CPU输出逻辑“0 ”时,编号3 处的P-MOS管截止,而下方的N-MOS管导通,达到输出低电平的目的。在这个模式下,CPU 仍然可以从“输入数据寄存器”读到该IO端口电压变化的信号。

七、GPIO开漏复用输出_AF_OD模式工作原理:

7

GPIO的开漏复用输出模式与开漏输出模式的工作原理基本相同,不同的是编号为2 的输入的源不同,它是和复用功能的输出端相连,此时的“输出数据寄存器”被输出通道给断开了。从上面的这个图,我们还可以看到CPU同样可以从“输入数据寄存器”读取到外部IO端口变化的电平信号。

八、GPIO推挽复用输出_AF_PP模式工作原理:

8

编号2“输出控制电路” 输入是与复用功能的输出端相连,此时“输出数据寄存器”被从输出通道断开了,片上外设的输出信号直接与“输出控制电路”的输入端想连接。

我们将GPIO配置成复用输出功能后,假如相应的外设模块没有被激活,那么此时IO端口的输出将不确定。其它部分原理与前面叙述的模式一样,包括对“输入数据寄存器”的读取方式也是一样的。

标签: STM32 GPIO

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006