• 【STM32】Cortex-M4 超详细的GPIO输出分析


    一、STM32的GPIO口架构
       我们知道stm32的GPIO口可以感知我们的外部世界,也可以通过外设控制外部世界,但是我们要实现这个感知和操控的过程,那么我们就要知到GPIO架构的原理是什么.详细的GPIO概述可以到本人的另一博客观看,连接如下:【STM32】Cortex_M4 GPIO口概述知识总结_丘比特惩罚陆的博客-CSDN博客
       接下来,进入我们的正题。我们知道,一个GPIO口含有的功能分别是:输入浮空、输入上拉、素如下拉、模拟输入、具有上拉或下拉的开漏输出、具有上拉或下拉的推挽输出、具有上拉或下拉的复用功能推挽、具有上拉或下拉的复用功能开漏。

     

    红线往上:我们结构的输入部分 ,指的是用来采集我们IO口的信息,信号是由外部向内部流动;      红线往下:我们结构的输出部分,用来控制外部器件,信号有内部向外部流动;

    竖线往左:我们的芯片内部;
    竖线往右:我们的芯片外部.

    为了更好的了解其原理,我们局部来看一下内部的输出部分,也就是这个部分:

     这是一个输出驱动器,这个驱动器呢,就是有我们的这个虚线框里面的所有部件组成,我们的数据大致的流向可以看出下面的图片的路线图。

                                                                  数据流向图

    1、在推挽功能的时候,P-MOS管和M-MOS管都能工作;

    在开漏功能的时候,P-MOS管永远不工作,N-MOS管可以工作。

    注意,这里说的可以工作不代表是一定一起工作。

    2、当选择的是推挽功能,输出控制的输入口输入数据,P管导通,M管不导通,由于M管

    导通以后输出的IO口与VDD连接,这时候我们输出高电平。输出控制的输入口输入一个数据,M管不导通,N管导通以后输出的IO口与VSS连接,这个时候输出低电平。一般可以用来驱动LED、蜂鸣器等等。

    3、当选择的是开漏功能,输出控制的输入口输入数据,P管不导通,M管不导通,这时候我们输出什么电平不确定,取决于外部电路。一般用于SPI等等的通信上面。

    4、芯片内部有上下拉;并且有独立的开关,上拉:VDD连接到电阻到信号线上。上拉中:电阻目前没有电流流过;下拉:VSS连接一个电阻到信号线,下拉中,电阻目前没有信号流动。

     注意:这时候我们的上下拉电阻都很大.所以我们芯片内部的上下拉都是弱上下拉,这样的好处是,可以让IO口产生一个确定的状态。

     5、整个输出过程:王输出数据寄存器中/复用功能输出写入数据,就能输出到IO口。推挽或者开漏上下拉取决于自己想要的功能需求。比如点灯,我可以用推挽输出。

    到这里我们就总结完我们的输出部分,另外的输出部分我们分开来写,有需要的朋友可以进入到主业搜索“GPIO输入分析”,提供该部分的讲解。

  • 相关阅读:
    左旋氧氟沙星/载纳米雄黄磁性/As2O3磁性Fe3O4/三氧化二砷白蛋白纳米球
    springboot+redis水果超市商城系统(源码+sql+论文报告)
    【C语言陷阱】00_scanf函数输入含空格时的陷阱
    esp8266 发送企业微信
    任务七 特征工程 LDA
    3. Nginx 核心功能
    使用Mask R-CNN模型实现人体关键节点标注
    化妆品行业如何开启新零售模式?你懂了吗
    纯前端导出excel表格 使用xlsx-style 可自定义样式,行高,打印属性,页边距,多表格压缩包下载
    zookeeper入门到精通08——服务器节点动态上下线案例实战
  • 原文地址:https://blog.csdn.net/Lushengshi/article/details/126200140