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

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

3天内不再提示

stm32单片机gpio工作原理是怎样的呢?看完立马学会了

fcsde-sh 来源:互联网 作者:佚名 2017-11-28 07:32 次阅读
GPIO的八种工作模式详解

浮空输入_IN_FLOATING

带上拉输入_IPU

带下拉输入_IPD

模拟输入_AIN

开漏输出_OUT_OD

推挽输出_OUT_PP

开漏复用输出_AF_OD

推挽复用输出_AF_PP

4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的工作原理

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

以上截图就是浮空输入模式的原理图,图中阴影的部分在浮空输入模式下是处于不工作状态的,尤其是下半部分的输出电路实际上这时的输出电路与输入的端口处于隔离状态。

黄色的高亮部分显示了数据传输通道,外部的电平信号通过左边编号1的I/O 端口进入STM32内部经过编号2的施密特触发器整形以后送入编号为3的“输入数据寄存器”在“输入数据寄存器”的另一端(编号4) ,CPU通过内部的数据总线可以随时读出I/O 端口的电平变化的状态。

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

上图是STM32的GPIO带上拉输入模式的原理图。

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

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

对于输入下拉模式的输入,是在数据通道的下部,接入了一个下拉电阻。

根据STM32的数据手册,这个下拉电阻阻值也是介于30K~50K 欧姆。

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

1.当作单片机作为输入时,假设我们直接在IO端口接一个按键到地(或电源)。

因为按键按,于不按管脚都是悬空的。单片机就很难检测按键是否按下。

所以人为的接一个上拉(或下拉)。以确定未按下的时候IO输入电平的状态

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

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

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

如果把STM32配置为模拟输入模式时,工作原理就比较简单了,信号从左边编号为1 的端口进从右边编号为2的一端直接进入STM32单片机的AD模块。

细心的朋友可以看到数据通道中上拉、下拉电阻和施密特触发器,这时均处于关断的状态,“输入数据寄存器”就不能反映IO端口上的电平变化的状态了,换句话说,也就是在模拟输入状态下,CPU不能通过“输入数据寄存器”读到IO端口变化的数据了。

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

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

上图是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模式工作原理

GPIO的推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管

当CPU输出逻辑“1 ”时,编号3 处的P-MOS管导通,而下方的N-MOS管截止,达到输出高电平的目的

当CPU输出逻辑“0 ”时,编号3 处的P-MOS管截止,而下方的N-MOS管导通,达到输出低电平的目的

在这个模式下,CPU 仍然可以从“输入数据寄存器”读到该IO端口电压变化的信号

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

GPIO的开漏复用输出模式与开漏输出模式的工作原理基本相同

不同的是编号为2 的输入的源不同,它是和复用功能的输出端相连

此时的“输出数据寄存器”被输出通道给断开了。

从上面的这个图,我们还可以看到CPU同样可以从“输入数据寄存器”读取到外部IO端口变化的电平信号。

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

最后介绍一下GPIO推挽复用输出模式的工作原理

编号2“输出控制电路” 输入是与复用功能的输出端相连

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

我们将GPIO配置成复用输出功能后,假如相应的外设模块没有被激活,那么此时IO端口的输出将不确定。

其它部分原理与前面叙述的模式一样,包括对“输入数据寄存器”的读取方式也是一样的。

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

    关注

    16

    文章

    1204

    浏览量

    52060
  • STM32单片机
    +关注

    关注

    59

    文章

    549

    浏览量

    58705

原文标题:STM32单片机GPIO的八种工作模式详解!

文章出处:【微信号:fcsde-sh,微信公众号:fcsde-sh】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32单片机的八种GPIO口模式

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

    51单片机基本功能会了之后,该怎样加强单片机的学习?

    51单片机基本功能会了之后,该怎样加强单片机的学习?
    发表于 07-17 16:07

    30个单片机编程例子详解,学会了其他的也能更快掌握

    `单片机编程知识都是从无到有,刚学会了一些理论知识,需要编程例子来验证所学及扩展所学,这就是很好的30个编程例子,学会了就能对其他更加困难的一知半解,再加强学习一下就变大神啦。`
    发表于 09-05 01:26

    【郭天祥】十天学会单片机LESSON6_AD及DA工作原理及应用

    `【郭天祥】十天学会单片机LESSON6_AD及DA工作原理及应用`
    发表于 06-26 21:57

    掌握STM32单片机工作原理

    本文以STM32F103R6为测试单片机我们经常使用单片机完成一些工作,今天我写出的几个较为经典的例子希望能够帮助大家更好的认识单片机,更好
    发表于 08-11 08:01

    主要介绍STM32单片机GPIO口基本概念

    与51单片机相比较为复杂,使用前必须操作相关寄存器完成对IO口的初始化配置(单片机内部会选择不同的硬件电路连接)分别为4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的概念和工作原理
    发表于 02-22 07:30

    关于单片机GPIO的简介

    薪火培训电控第一讲——单片机GPIO关于单片机GPIO简介GPIO八种输入输出模式GPIO引脚
    发表于 02-24 06:29

    单片机系统的工作原理设计

    单片机系统的工作原理设计 单片机应用系统的存储器扩充单片机应用系统的存储器扩充单片机应用系统的开关量输入...电路
    发表于 04-14 14:27 26次下载

    stm32单片机的基本工作原理

    我们使用的大部分电器都使用了单片机,那么stm32单片机的基本工作原理是什么?下面小编就带大家了解一下
    的头像 发表于 08-19 11:06 2.8w次阅读

    STM32单片机GPIO口简介

    与51单片机相比较为复杂,使用前必须操作相关寄存器完成对IO口的初始化配置(单片机内部会选择不同的硬件电路连接)分别为4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的概念和工作原理
    发表于 12-28 19:23 23次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b><b class='flag-5'>GPIO</b>口简介

    薪火培训电控第一讲——单片机GPIO

    薪火培训电控第一讲——单片机GPIO关于单片机GPIO简介GPIO八种输入输出模式GPIO引脚
    发表于 12-31 19:47 2次下载
    薪火培训电控第一讲——<b class='flag-5'>单片机</b>与<b class='flag-5'>GPIO</b>

    STM32单片机GPIO的配置模式

    我们在学习单片机的时候,一般都是从操作GPIO开始的,很多单片机学习的教程第一课就是点亮发光二极管或者是流水灯。
    发表于 07-03 14:17 1298次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b><b class='flag-5'>GPIO</b>的配置模式

    51单片机GPIO结构框图与工作原理

    不论学习什么单片机,最简单的外设莫过于IO 口的高低电平控制,本教程将向大家介绍如何在创建好的工程模板上通过操作51 单片机GPIO 口输出高低电平。
    发表于 07-15 15:29 6839次阅读
    51<b class='flag-5'>单片机</b><b class='flag-5'>GPIO</b>结构框图与<b class='flag-5'>工作原理</b>

    STM32单片机引脚介绍及功能 STM32单片机工作原理和基本组成

      STM32单片机引脚分为两种类型:GPIO引脚和其他引脚。其中GPIO引脚可以作为通用输入输出引脚,也可以通过软件控制来使用特定功能。其他引脚则是供其他模块使用的,如时钟引脚、中断
    发表于 08-09 16:52 3.2w次阅读

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

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