STM32学习记录——GPIO的8种工作模式

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

目录

前言

一、GPIO的介绍

二、GPIO的八种工作模式

三、四种输入模式介绍及主要应用

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

四、四种输出模式介绍及主要应用

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

前言

       今天简单记录一下STM32系列单片机GPIO的八种工作模式,介绍每种工作模式的作用,以及我们初学者在什么时候该用哪种GPIO的工作模式。

一、GPIO的介绍

       GPIO (general purpose input output)是通用输入输出端口的简称,通俗来讲就是单片机上的引脚,在STM32中,GPIO的工作模式被细分为8种,由4个32位寄存器共同控制。

输出输入都是针对芯片引脚来讲的(即引脚的对外输出,和外界对引脚的输入)。

二、GPIO的八种工作模式

gpio的8种工作模式,stm32,单片机,学习

三、四种输入模式介绍

输入模式下可读取端口的高低电平或电压。例如各类传感器(使用ADC功能),如果要将获取的电平传送给单片机的某一个引脚,那就要将这个引脚设置为输入模式。

1、GPIO_Mode_AIN 模拟输入

       这种输入模式比较特殊,该模式主要为片上外设ADC而配置,从外部读取模拟信号,当设置为模拟输入时,GPIO会失效,引脚直接接入内部ADC。特点:相较于其他输入模式只能读取到逻辑高/低电平(数字量),该模式能读取到细微变化的值(模拟量)。通俗来讲就是,别的模式只能读取0和1,而模拟输入可以读取到0-1的变化区间。

主要应用:所有要用到ADC模拟输入的外设(例如烟雾传感器,引脚需要接收模拟信号进而计算电压值),低功耗下省电。

2、GPIO_Mode_IN_FLOATING 浮空输入

       数据通道中仅接入TTL触发器(作用是将相对缓慢变化的模拟信号变成矩形信号)整形,随后输入输入数据寄存器。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。该种工作模式未接入任何上拉/下拉电阻。

主要应用:可用于按键KEY实验、发送接收信号RX、TX、IIC、USART等。(但按键一般更常用到上拉下拉输入,待会再重点记录)。主要还是发送和接收信号的引脚常设置为浮空输入。

3、GPIO_Mode_IPD 下拉输入 

可读取引脚电平,与浮空输入相比,它内部连接下拉电阻,悬空时默认为低电平,其余相同。

4、GPIO_Mode_IPU 上拉输入 

可读取引脚电平,与浮空输入相比,它内部连接上拉电阻,悬空时默认为高电平,其余相同。

主要应用:

      ①按键的使用

      ②器件的外部中断(IRQ)引脚触发中断条件下降沿触发/低电平触发,这样在无信号输入时始终保持高电平,如果有事件触发中断IRQ可以输出一个低电平,进而可产生(下降沿/低电平)中断,此时就可以将该引脚设置为上拉输出,使中断条件满足。

      同理,器件的外部中断(IRQ)引脚触发中断条件上升沿触发/高电平触发时,该端口可以选择下拉输入模式。

重点记录:按键与上拉/下拉输入

gpio的8种工作模式,stm32,单片机,学习

 由图不难看出:当KEY_UP按下后,会接入VCC的高电平,而当按键不按下时,即为悬空状态(无信号输入),此时IO输入是未知的,程序可能卡死在这里或者跑飞。那我们就要用到一个下拉电阻,使该引脚在悬空状态下电平被拉低。即按键KEY_UP按下为高电平,不按下为低电平。、

同理,当KEY0、KEY1、KEY2三个按键按下时会接入GND的低电平,而不按下时输入未知。为了避免程序跑飞,采用上拉电阻,让按键按下时为低电平,按键松开为高电平。

四、四种输出模式介绍

输出模式下,可由芯片向外输出电平。例如点亮LED,就需要给LED提供高电平。

5、GPIO_Mode_Out_OD 开漏输出

       当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,该引脚处于开漏,也就是浮空状态(高阻态),如果想输出高电平则必须接入上拉电阻。同时IO口可以由外部电路改变为低电平或不变,即可读IO输入电平变化,实现了I/O端口的双向功能。简单来说,开漏输出只可以输出强低电平高电平得靠外部电阻拉高显然,这种输出方式就有一个优点,由于高电平完全由外部电阻控制,那此模式下的输出电平是可以通过改变电阻而改变的。此外,可以将多路开漏输出的引脚连接到一条线上,通过一个上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,这也是I2C,SMBus,等总线判断总线占用状态的原理。

主要应用:该模式适用于电平不匹配场合、适合做电流型的驱动,吸收电流能力比较强。

6、GPIO_Mode_Out_PP 推挽输出

       输出具有驱动能力,当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,I/O端口输出高电平。相当于可以给其他元件供电,并且可以直接通过逻辑语言0和1控制是否供电。

主要应用:点灯以及其他所有需要直接提供高低电平的操作。

7、GPIO_Mode_AF_OD 复用开漏输出 

       当有多个不同的模块对应同一个引脚时,那这个GPIO就要使用复用功能,其他方面与开漏输出相同。即如果用在IC、SMBUS这些需要线与功能的复用场合,就使用复用开漏模式。

主要应用:片内外设功能(TX1、MOSI、MISO.SCK.SS)

8、GPIO_Mode_AF_PP 复用推挽输出

和复用开漏输出同理,当某一个GPIO对应多个复用模块时,要用到复用功能。

主要应用:片内外设功能(I2C的SCL、SDA)

作为初学者的一句话总结:

       输入一般用浮空输入,如果要使引脚在悬空状态时电平确定就用上拉/下拉输入,如果要输入连续的模拟量就用模拟输入。

       输出一般用推挽输出,如果要调节输出的电平就用开漏输出,如果有端口复用的情况就用复用输出模式。文章来源地址https://www.toymoban.com/news/detail-582147.html

到了这里,关于STM32学习记录——GPIO的8种工作模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景

    学了挺久的单片机老是记不住每种模式的运用场景今天用通义千问总结了一下作为鞭策顺便记录一下 STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景。以下是每种模式的简要描述及其对应的应用场景: 1. **GPIO_Mode_AIN** - **模拟输入**    - **应用场景**: 当GPIO引脚作为

    2024年04月11日
    浏览(86)
  • STM32F103ZET6 GPIO工作模式介绍+使用寄存器点亮第一个LED灯

    目录  GPIO的工作模式介绍 1.输入模式(模拟、上拉、下拉、浮空) 2.输出模式(推挽/开漏) 3.复用功能(推挽/开漏) 4.模拟输入输出(上下拉无影响) 如何使用寄存器点亮第一个LED灯         在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器 GPIOx_

    2024年02月06日
    浏览(70)
  • STM32-GPIO工作方式

    GPIO端口的每个位可以由软件分别配置成八种输入输出模式。 下图黄色区域是该种模式电路,此时上拉和下拉电阻的开关打开,施密特触发器打开。 在I/O口写入电平-进入输入驱动器-通过施密特触发器-进入输入数据寄存器,CPU读出  输入浮空一般多用于外部按键输入。 在输入

    2024年01月22日
    浏览(35)
  • STM32 GPIO工作原理详解

    GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以STM32F103ZET6芯片为例子,该芯片共有144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GP

    2024年02月21日
    浏览(34)
  • 【STM32】GPIO的工作原理和配置

      GPIO,全称为General Purpose Input Output Ports(通用输入输出端口),也就是通用IO口。   GPIO是控制或者采集外部器件的信息的外设,可以由软件程序控制,用于输出或者输入高低电平。   GPIO的使用非常广泛。可以与硬件进行数据交互(如UART),控制硬件工作(如LED、蜂

    2024年01月17日
    浏览(39)
  • STM32单片机(三)第二节:GPIO输出练习3(蜂鸣器)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(46)
  • STM32 (三)GPIO的八种模式及其原理

    GPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。 STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 1. 四种输入模式     GPIO_Mode_IN_FLOATING 浮空输入模式     GPIO_Mode_IPU 上拉输入模式     GPIO_Mode_IPD 下拉输入模式

    2024年02月02日
    浏览(46)
  • 【STM32】STM32学习笔记-GPIO输出(05)

    GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电

    2024年03月15日
    浏览(84)
  • STM32 GPIO设置(GPIO初始化)学习笔记

    GPIO 都知道是 通用输入输出接口 的意思就不详细解释 那么我们就直接进入怎么设置GPIO接口: 这里我的编译软件是keil5,相信大家都应该知道stm32有各种的工作模式上拉、下拉、推挽、开漏等等。如果想要了解具体的工作模式原理这里我推荐大家看:推挽 开漏 高阻 这都是谁

    2024年03月28日
    浏览(59)
  • stm32 学习笔记:GPIO输出

           引脚电平 0-3.3V,部分可容忍5V,对输出而言最大只能输出3.3V,        只要可以用高低电平来控制的地方,都可以用GPIO来完成,如果控制的功率比较大的设备,只需加入驱动电路即可         GPIO 通用输入输出口,可配置为 8种 输入输出模式。 输出模式下可控制端口

    2024年02月09日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包