【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析

这篇具有很好参考价值的文章主要介绍了【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

         本章节主要讲解点亮LED的基本原理,以及GPIO框图的讲解。

  如何点亮LED(输出)

        首先我们查看原理图,观察电路图中LED的连接情况,如下图可以看出我们的板子中LED一端通过限流电阻连接的PB0另一端连接的是高电平VCC,那么我们将PB0位置接地是不是灯就亮了,那我们就想办法在这一端通过单片机让这一端接地就可以了,具体怎么做到我们循序渐进后面一点点慢慢来。(和我使用的板子不一样也没有关系,原理是相通的我们学会原理其他的就不算问题了)。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

如何识别按键是否按下(输入)

       如下图所示当我们的开关闭合时单片机IO口引脚处的电压为GND,这样我们就可以通过单片机读取单片机IO的电平状态判断按键是否闭合了,具体怎么使用我们看下文。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

  GPIO的基本概念

        通过上面的讲解我们已经知道了如何点亮LED灯,那么我们用单片机如何控制呢?这里需要引入GPIO的概念。

        通常我们管GPIO叫做通用输入输出口,这里的关键词输入输出,我们点亮LED需要用到这个输出功能。我们接下来看下,在STM32单片机中是如何实现的输入输出功能。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        上图是我们在STM32中文参考手册中找到的关于GPIO的框图,需要注意的是这个框图位于芯片内部,图中I/O引脚处表示的是单片机的引脚,这个引脚与芯片外部相连,像我们说的PB0就是一个I/O引脚。

GPIO输入分析

        接下来我们来详细分析这个IO口框图,首先看上半部分,这部分表示的是输入,如下图所示。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

                IO口引脚连接一个电压时,电流会按照箭头的方向流动,首先我们看下1处,这里由两个二极管组成,通常情况下在STM32单片机里VDD表示3.3V那么vss就是表示0V。当1处的电压大于3.3V时,比如5V那么二极管这的电压分布情况就如下图所示。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        可以看到二极管正极为5V负极为3.3V,那这里就产生了一个5V减去3.3v的压降,那么二极管就导通了,这高出的电压就被二极管分担了,所以能在一定程度上保护内部电路。下面的保护二极管同理。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        接下来我们像向里走,2处这里经过了两个电阻,一个电阻接VDD叫上拉电阻,一个电阻接VCC叫下拉电阻。两个电阻处都有开和关字样,这就意味着这两个上下拉电阻我们是可以通过软件进行配置的。先看上拉电阻,当上拉电阻开关闭合2处如果没有外部电压输入,那么我们这里就是VDD的电压,这里的作用显而易见(可以在外部没有电平变化的情况下给一个默认的高电平VDD),假如外部IO引脚与地连接,那么这一点的状态可以等效为下图所示。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        现在2处的电平为GND,那么我们在软件里就可以做判断了如果电平为高电平也就是1表示外面没有接低电平,反之为接低电平了(对应文章开始的图表示开关闭合了),那么如果这个上拉电阻不闭合呢?开关闭合能够识别到低电平,但是不闭合时的状态就不确定了,显然不是稳定的。(下拉电阻同样的道理)在这里我们看到了三种输入状态,上拉电阻闭合时叫上拉输入即电平默认状态为高电平,下拉电阻闭合时叫下拉输入即电平默认状态为低电平,如果上拉下拉都不闭合叫做浮空输入即默认电平状态不确定。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        下面我们接着向里走,3处有个电子元器件叫施密特触发器,他的主要作用是做电压比较的,在STM32中当IO引脚处接电压,电压经过保护二极管上下拉电阻到达施密特触发器时如果电压值大于2V,那么施密特触发器输出高电平即输入数据寄存器(4处)(如果不知道寄存器是什么可以百度搜搜,这里不赘述了)会存入一个1,其实就是输入数据寄存器对应位变为了VDD通常情况下为3.3V,那么如果这个电压低于1.8V那么施密特触发器就输出低电平,4处的输入数据寄存器就会存入一个低电平。这时候我们是不是就可以通过读取输入数据寄存器里面的值判断,IO引脚处接的是低电平还是高电平了,文章开始的开关是不是就可以判断有没有闭合了(闭合读到的是低电平)。可能有人注意到了1.8V和2V之间怎么办?这就是一个不确定输入状态了。

          5和6处我们还没有说,这两个比较特殊。先看5处,这里没有经过施密特触发器也就是说,外界输入多少电压就进去多少电压,这叫模拟输入(具体ADC章节会用到),6处经过了施密特触发器也就意味着只有0和1两种状态,这叫复用功能输入,后面会讲这里可以忽略。

GPIO输出框图分析

        好了GPIO的输入框图分析完了,我们可以看下输出了,输出我们从单片机里面向外看,先上图。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        图中0处先不用纠结,后面我们具体学寄存器时再回头看更容易些,先看1到2,这里我们对输出数据寄存器写1之后,1到了3处这是个选择器,选择上下两个线哪一个过去,下面是复用功能输出不用管他,我们假设选了上面的这跟线,这样3处的状态为1高电平状态,这里输出控制里少画了一个元器件,这个元器件叫反相器,即当我们3处为1高电平状态时4处为0低电平状态。这里又遇到了两个电子元器件,PMOS和NMOS,不要害怕这个我们只看4处的高低电平这两个元器件有什么影响就可以了。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        先看上面这个PMOS当a处为低电平时b到c导通就相当于b和c之间有一个开关,a处为低电平时开关闭合,那么VDD也就是3.3V按照红线的方向导通,如果IO引脚处连接一个负极接地的发光二极管是不是发光二极管就亮了。这种情况叫输出高电平。接下来我们看NMOS。

【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析,STM32,单片机,嵌入式,stm32,嵌入式硬件,单片机

        如图当a处为高电平时b和c导通,相当于b和c之间有一个开关闭合了,这时如果外面接一个发光二极管,二极管正极接了VCC当NMOS处b和c之间的开关闭合,是不是电流就顺着vcc一直流到了vss处,那么灯就亮了。

        我们总结下,当输出数据寄存器写1时经过反相器变为0,这时候PMOS导通IO引脚输出高电平,当输出数据寄存器写0时经过反相器变为1,这时候NMOS导通IO引脚输出低电平。

        文章到这里就结束了,希望对您有所帮助,下章我们分析GPIO相关寄存器,并且使用寄存器点亮LED灯。文章来源地址https://www.toymoban.com/news/detail-621966.html

到了这里,关于【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32——关于GPIO口的输出方式和输入方式

    在STM32中,我们会要使用程序来对I/O口进行控制,当我们使用I/O口时,我们就需要知道在程序中我们需要这个I/O口来实现什么功能,是输入还是输出。   1、使用输出模式 I/O口常用的输出方式有推挽输出和开漏输出。 (1)推挽输出(GPIO_Mode_Out_PP):可以输出高、低电平,连接数

    2024年02月09日
    浏览(50)
  • 一眼就能看懂STM32的外设GPIO(通用输入输出)

    GPIO,简称通用输入输出,关键在于他是通用的。任何外设都可以用它,他的主要目的在于控制的IO,输出或由外部输入高低电平,与之对应的是AFIO的复用输入输出,当用到引脚的第二个功能的时候,就需要启用它; 你只需要记住他:他是控制引脚(IO口)的输入输出功能,高

    2024年02月04日
    浏览(47)
  • 详解STM32的GPIO八种输入输出模式,GPIO各种输入输出的区别、初始化的步骤详解,看这文章就行了(超详细)

    在STM32微控制器中,常见的输入输出(GPIO)模式有八种,分别是推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入和模拟输入。下面我将为你解释每种模式的特点和区别,并提供相应的示例代码。 推挽输出(Push-Pull Output):推挽输出模式是最常

    2024年02月15日
    浏览(71)
  • 【物联网】详解STM32的GPIO八种输入输出模式,GPIO各种输入输出的区别、初始化的步骤详解,看这文章就行了(超详细)

    在STM32微控制器中,常见的输入输出(GPIO)模式有八种,分别是推挽输出、开漏输出、复用推挽输出、复用开漏输出、浮空输入、上拉输入、下拉输入和模拟输入。下面我将为你解释每种模式的特点和区别,并提供相应的示例代码。 推挽输出(Push-Pull Output):推挽输出模式是最常

    2024年02月14日
    浏览(67)
  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(63)
  • STM32入门——基本 GPIO 的输出控制

    GPIO 即 通用型输入输出端口(General-Purose Input / Output)的简称,简单来说就是 STM32 单片机的可控制的引脚,功能类似于 8051 系列单片机的 P0-P3 端口。STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部的通讯、控制以及数据采集的功能。STM32 芯片的 GPIO 被分为很多组,

    2023年04月18日
    浏览(35)
  • 从零开始手搓一个STM32与机智云的小项目——GPIO的输入输出

    上一篇中,对整个板子的硬件组成做了一个简单的介绍,本文开始进入程序编写的环节,首先来搞定最简单的GPIO输入输出控制。 GPIO全称叫做通用输入输出接口,它是单片机内核、片上外设与外部电路连接的桥梁,是单片机与外界进行数据交换的通道。 GPIO的端口号是从PA、

    2024年02月08日
    浏览(48)
  • STM32CubeMX教程3 GPIO输入 - 按键响应

    开发板(STM32F407G-DISC1) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 使用STM32CubeMX软件配置STM32F407开发板的按键作为输入,利用按键输入使LED灯产生响应 对于所有的GPIO来说都是既可以作为输出引脚也可以作为输入引脚使用,本开发板上有一个用户按键,

    2024年02月03日
    浏览(61)
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED

    今日继续学习使用  STM32 F103C8T6开发板 点亮一个LED灯,文章提供源码,测试工程,实验效果图,希望我的归纳总结会对大家有帮助~ 目录 GPIO的认识与分类 : 引脚安排整理: 定时器的引脚例举: 串口的引脚例举:  CAN串口通信: SPI通信: IIC通信:  其余引脚: 烧录引脚:

    2024年02月11日
    浏览(52)
  • STM32CubeMX教程2 GPIO输出 - 点亮LED灯

    开发板(STM32F407G-DISC1) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 使用STM32CubeMX软件配置STM32F407开发板点亮LED灯 笔者使用的STM32F407G-DISC1开发板主控制器为STM32F407VGT6,该MCU封装为LQFP 100,一共100个引脚,除去16个POWER引脚、1个NRST引脚和一个BOOT0引脚外,

    2024年02月03日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包