STM32 (三)GPIO的八种模式及其原理

这篇具有很好参考价值的文章主要介绍了STM32 (三)GPIO的八种模式及其原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、GPIO简介

GPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。
STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

二、GPIO工作模式.


1. 四种输入模式

    GPIO_Mode_IN_FLOATING 浮空输入模式
    GPIO_Mode_IPU 上拉输入模式
    GPIO_Mode_IPD 下拉输入模式
    GPIO_Mode_AIN 模拟输入模式

2. 四种输出模式

    GPIO_Mode_Out_OD 开漏输出模式
    GPIO_Mode_Out_PP 推挽输出模式
    GPIO_Mode_AF_OD 复用开漏输出模式
    GPIO_Mode_AF_PP 复用推挽输出模式

三、GPIO工作原理解析

1. I/O端口的基本结构框图

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

保护二极管

作用: 防止引脚外部输入过高和过低的电压,防止不正常电压引入芯片,导致芯片烧毁。
当引脚电压高于VDD时,上方的二极管导通。
当引脚电压低于VSS时,下方的二极管导通。
上拉电阻和下拉电阻

作用: 控制引脚默认状态的电压。
开启上拉的时候,引脚默认电压为高电平。
开启下拉的时候,引脚默认电压为低电平。
TTL肖特基触发器

TTL肖特基触发器其实可以理解为用肖特基管构成的施密特触发器。
作用: 将相对缓慢变化的模拟信号变成矩形信号。
当输入电压高于正向阈值电压,输出为高。
当输入电压低于负向阈值电压,输出为低。
P-MOS管和N-MOS管

作用: 使得GPIO具有“推挽输出”和“开漏输出”的模式。
P-MOS管: MCU输出为 1 导通,低电平关闭。
N-MOS管: MCU输出为 0 导通,高电平关闭。
 

3. GPIO工作模式解析

浮空输入模式

浮空输入模式下,I/O端口的电平信号直接进入到输入数据寄存器
MCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。 (接用电压表测量其引脚电压为1点几伏,这是个不确定值) 以用来做KEY识别

上拉输入模式

上拉输入模式下, I/O端口的电平信号经过上拉电阻进入到输入数据寄存器。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

IO内部接上拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为高电平  如果I/O口输入低电平,那么引脚就为低电平,MCU读取到的就是低电平

STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。

下拉输入模式

下拉输入模式下, I/O端口的电平信号经过下拉电阻进入到输入数据寄存器。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

  IO内部接下拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为低电平  如果I/O口输入高电平,那么引脚就为高电平,MCU读取到的就是高电平。

模拟输入模式

模拟输入模式下, I/O端口的电平信号不经过TTL肖特基触发器,直接进入ADC模块,并且输入数据寄存器为空 ,MCU不能在输入数据寄存器上读到引脚状态。
在模拟输入模式下,上拉电阻和下拉电阻是不起作用的,即使配置上拉和下拉模式,也不会有作用。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

当GPIO引脚用于ADC采集电压的输入通道时,用作"模拟输入"功能,此时信号不经过施密特触发器,直接直接进入ADC模块,并且输入数据寄存器为空 ,CPU不能在输入数据寄存器上读到引脚状态

当GPIO用于模拟功能时,引脚的上、下拉电阻是不起作用的,这个时候即使配置了上拉或下拉模式,也不会影响到模拟信号的输入输出

除了 ADC 和 DAC 要将 IO 配置为模拟通道之外其他外设功能一律 要配置为复用功能模式,
 

开漏输出模式(带上拉或者下拉)

开漏输出模式下, P-MOS管不工作,只有N-MOS管工作,MCU只能控制输出低电平。
MCU输出低电平的时候,N-MOS管导通,I/O引脚输出低电平。
MCU输出高电平的时候,N-MOS管关闭,I/O引脚悬空状态。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

推挽输出模式

推挽输出模式下, P-MOS管和N-MOS管都工作,MCU可以控制输出高电平和低电平。
MCU输出为 0 的时候,N-MOS管导通,I/O引脚输出低电平。
MCU输出为 1 的时候,P-MOS管导通,I/O引脚输出高电平。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

复用开漏输出模式

复用开漏输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

复用推挽输出模式

复用推挽输出模式下, GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效, 输出的高低电平的来源于其它外设。

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

三、在STM32中选用IO模式:

     上拉输入、下拉输入可以用来检测外部信号;例如,按键等;
    模拟输入 ——应用ADC模拟输入,或者低功耗下省电
    开漏输出一般应用在I2C、SMBUS通讯等需要"线与"功能的总线电路中。
     推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。
    复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
    复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
 

F4系列与F1系列区别:

本质上的区别是F4系列采用了Cortex-M4内核  而F1系列采用Cortex-M3内核

F1系列(M3)IO口基本结构:

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

F4系列(M4)IO口基本结构:

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

F4系列设计的更加高级与人性化,他将外部上下拉电阻转移到了输出/输入驱动器外部,使得输出模式下也可以实现内部上拉与下拉,方便了用户的使用,增加了灵活性
 

四、GPIO的配置方法(cubemx)

1,打开cubrmx ,点击ACCESS TO MCU SELECTCR.

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

2,会进入这个界面,在 part number 处输入单片机的型号,并选取相应的型号

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

3,先点击syssterm core ,再点击sys,参照图上配置

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 

4,在右侧的芯片上,寻找所要设置的GPIO,在单击该GPIO后会显示能配置的模式 

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 5,在选定模式后点击GPIO进行详细的配置gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件

 在这可进行输入\输出的初始电平,输入的开漏,推挽等的设置。

6,进入clock configuration进行时钟树的配置(上一章讲过了)

gpio_mode_af_pp,STM32 CubeMX,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-782468.html

到了这里,关于STM32 (三)GPIO的八种模式及其原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32F103——GPIO八种工作模式

    目录 1、GPIO 基本结构分析 2、GPIO 八种工作模式 2.1 输入浮空  2.2 输入上拉 2.3 输入下拉 2.4 模拟功能 2.5 开漏输出 2.6 开漏式复用功能 2.7 推挽输出 2.8 推挽式复用功能 3、GPIO 八种工作模式特点及应用  STM32F103的 GPIO 工作有八种模式,但是具体这些模式是怎么实现的?下面我们

    2024年02月14日
    浏览(109)
  • STM32的GPIO端口配置八种模式的理解

    在这张图中,GPIO的配置可以分成8种模式,4种输入,4种输出。 输入分为:模拟输入、浮空输入、上拉输入、下拉输入 输出分为:开漏输出、推挽输出、复用推挽输出、复用开漏输出 模拟输入,一般情况下,用于ADC的采集电压时,配置的输入IO口。在模拟输入中,TTL肖特基触

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

    复用开漏输出(AF Open-Drain Output):复用开漏输出模式允许将GPIO引脚用作特定外设功能。在该模式下,引脚只能输出低电平,要输出高电平需要通过外部上拉电阻或其他方式。 浮空输入(Floating Input):浮空输入模式是一种高阻抗输入模式。在该模式下,引脚不连接到外部电路,处

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

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

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

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

    2024年02月14日
    浏览(59)
  • GPIO输入输出模式原理(八种工作方式附电路图详解)

    这几篇博文讲的不错,可参照着理解: STM32下拉输入模式与振动传感器的使用 “上拉电阻与下拉电阻”通俗解读 上、下拉电阻(定义、强弱上拉、常见作用、吸电流、拉电流、灌电流) 个人总结: 模拟量 选浮空输入,模拟量是连续变化的值 数字量 就两种状态0和1,选上拉

    2023年04月08日
    浏览(45)
  • STM32F103GPIO工作模式及原理

    GPIO,全称为通用输入输出端口,是STM32系列微控制器中的一个重要概念。STM32芯片的GPIO引脚可以被配置为输入模式或输出模式,实现与外部设备的通信、控制以及数据采集功能。 输入模式 浮空输入 上拉输入 下拉输入 模拟输入 输出模式 开漏输出 推挽输出 推挽式复用功能

    2024年01月20日
    浏览(44)
  • 单例模式的八种写法、单例和并发的关系

    为什么需要单例? 节省内存和计算 保证结果正确 方便管理 无状态的工具类:比如日志工具类,不管是在哪里使用,我们需要的只是它帮我们记录日志信息,除此之外,并不需要在它的实例对象上存储任何状态,这时候我们就只需要一个实例对象即可。 全局信息类:比如我

    2024年01月18日
    浏览(47)
  • STM32八种I/O口模式

    作为两年嵌入式软件攻城狮,还没仔细去理解过STM32的GPIO的八种使用模式,俗话说嵌入式软硬件不分家,软件不懂硬件,出了问题有时候只能“抓虾”,今天有点时间,特此总结一下学过的有关STM32的GPIO模式的硬件知识。 GPIO(general porpose intputoutput):通用输入输出端口的简称,

    2024年04月26日
    浏览(25)
  • 二、STM32的输入输出八种模式

    目录 一.输入模式 1.浮空输入 2.上拉输入 3.下拉输入 4.模拟输入 二.输出模式 1.开漏输出 2.开漏复用输出 3.推挽输出 4.推挽复用输出         默认情况下输入引脚数据为1,高电平。  上拉电阻:把不确定的信号通过电阻连接到高电平,电信号初始化为高电平。 下拉电阻:把不

    2024年02月12日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包