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

简介: 我们知道stm32的GPIO口可以感知我们的外部世界,也可以通过外设控制外部世界,但是我们要实现这个感知和操控的过程,那么我们就要知到GPIO架构的原理是什么.

一、STM32的GPIO口架构

  我们知道stm32的GPIO口可以感知我们的外部世界,也可以通过外设控制外部世界,但是我们要实现这个感知和操控的过程,那么我们就要知到GPIO架构的原理是什么.详细的GPIO概述可以到本人的另一博客观看,连接如下:【STM32】Cortex_M4 GPIO口概述知识总结_丘比特惩罚陆的博客-CSDN博客

  接下来,进入我们的正题。我们知道,一个GPIO口含有的功能分别是:输入浮空、输入上拉、素如下拉、模拟输入、具有上拉或下拉的开漏输出、具有上拉或下拉的推挽输出、具有上拉或下拉的复用功能推挽、具有上拉或下拉的复用功能开漏。

2345_image_file_copy_113.jpg

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

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

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

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

2345_image_file_copy_115.jpg

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

2345_image_file_copy_116.jpg

    数据流向图

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连接一个电阻到信号线,下拉中,电阻目前没有信号流动。

2345_image_file_copy_117.jpg

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

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

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


相关文章
|
1月前
|
存储
STM32F103标准外设库——GPIO 输入、输出 (五)
STM32F103标准外设库——GPIO 输入、输出 (五)
100 0
STM32F103标准外设库——GPIO 输入、输出 (五)
|
8月前
|
芯片
STM32速成笔记(二)—GPIO
本文介绍了STM32的GPIO的配置和使用方法,并且给出了应用实例。此外,针对使用时可能遇到的一些问题给出了解决办法。
253 0
STM32速成笔记(二)—GPIO
|
1月前
|
消息中间件 物联网 Linux
STM32面试知识点总结分析
STM32面试知识点总结分析
97 0
|
1月前
|
存储 芯片 C++
STM32启动详细流程分析(一)
STM32启动详细流程分析(一)
143 0
|
1月前
|
芯片
STM32 GPIO工作原理详解
STM32 GPIO工作原理详解
|
1月前
|
芯片
嵌入式STM32中时钟系统详细分析
嵌入式STM32中时钟系统详细分析
81 0
嵌入式STM32中时钟系统详细分析
|
9月前
|
芯片
STM32F0单片机快速入门五 GPIO中断
STM32F0单片机快速入门五 GPIO中断
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
|
10月前
|
存储 数据采集 芯片
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)