STM32的GPIO端口配置八种模式的理解

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


一、GPIO的结构框图

gpio_mode_af_od,STM32学习记录,stm32,单片机
在这张图中,GPIO的配置可以分成8种模式,4种输入,4种输出。

输入分为:模拟输入、浮空输入、上拉输入、下拉输入

输出分为:开漏输出、推挽输出、复用推挽输出、复用开漏输出

二、八种模式

1. 模拟输入(GPIO_Mode_AIN)

gpio_mode_af_od,STM32学习记录,stm32,单片机
模拟输入,一般情况下,用于ADC的采集电压时,配置的输入IO口。在模拟输入中,TTL肖特基触发器以及上拉电阻和下拉电阻都处于关闭状态。即使配置上拉或下拉模式,不会影响到模拟信号的输入输出。


2. 浮空输入(GPIO_Mode_IN_FLOATING )

gpio_mode_af_od,STM32学习记录,stm32,单片机

浮空输入,IO的电平状态是不确定的,完全由外部输入决定,如果该引脚悬空的情况下,读取该端口的电平是不确定的,有可能是高电平,也有可能是低电平。


3. 上拉输入(GPIO_Mode_IPU)

gpio_mode_af_od,STM32学习记录,stm32,单片机
上拉输入,将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平,IO口为高电平。
在上拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为高电平。


4. 下拉输入(GPIO_Mode_IPD )

gpio_mode_af_od,STM32学习记录,stm32,单片机
下拉输入,将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平,IO口为低电平。
与上拉输入同理,在下拉输入中接入了一个电阻,它的作用是为了确保信号输入时输入端的电平为低电平。


5. 开漏输出( GPIO_Mode_Out_OD )

gpio_mode_af_od,STM32学习记录,stm32,单片机
开漏输出,在这个模式下,是能够输出低电平,但无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。同时,P-MOS管是处于关闭的,N-MOS管是开启的。当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,N-MOS管截止,IO口直接和输出端断开了,处于浮空状态。


6. 推挽输出( GPIO_Mode_Out_PP )

gpio_mode_af_od,STM32学习记录,stm32,单片机
推挽输出,它的P-MOS管和N-MOS管是打开的状态,当输出寄存器的值为0的时候,N-MOS管导通,此时IO口的电平被N-MOS管拉到VSS,输出为低电平。当输出寄存器为1的时候,P-MOS管导通,此时IO口的电平被P-MOS管拉到VDD,输出为高电平。简单点讲就是想输出高电平,就输出高电平,想输出低电平,就输出低电平。

开漏输出和推挽输出的区别:开漏输出只有N-MOS管是开启的,P-MOS管是关闭的。


复用功能

可以理解为普通的GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用),复用功能模式中,一般直接用外设的寄存器来获取该数据信号。

7. 复用开漏输出 ( GPIO_Mode_AF_OD )

gpio_mode_af_od,STM32学习记录,stm32,单片机
复用开漏输出模式,与开漏输出模式很是相似。只是输出的高低电平的来源不同,不是让CPU写输出数据寄存器了,而是用片内外设模块的复用功能输出来决定的。复用开漏输出中的片内外设功能(TX1,MOSI,MISO.SCK.SS)。


8. 复用推挽输出( GPIO_Mode_AF_PP )

gpio_mode_af_od,STM32学习记录,stm32,单片机
同理,复用推挽输出模式,与推挽输出模式也是相似。输出的高低电平的来源不同,不是让CPU写输出数据寄存器,而是利用片内外设模块的复用功能输出来决定的。复用推挽输出中的片内外设功能(I2C的SCL,SDA)。

总结

以上就是我关于STM32中配置GPIO的八种模式的理解,谢谢观看。文章来源地址https://www.toymoban.com/news/detail-797775.html

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

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

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

相关文章

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

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

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

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

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

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

    2024年02月14日
    浏览(13)
  • STM32的八种工作模式

    STM32单片机具有高性能、低成本、低功耗的优点,与它打交道就必须先了解它的几种工作模式,它共有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。 在这八种工作模式中分为: 1、四种 输入 模式

    2024年02月10日
    浏览(14)
  • STM32八种I/O口模式

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

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

    2024年02月12日
    浏览(14)
  • STM32通用输入输出端口GPIO(IO口)

    IO口:通用输入输出端口,通过软件控制其输入输出,STM32芯片的GPIO引脚与外部设备连接起来,从而可以实现与外部的通信,控制以及数据采集的功能; 输出模式下,可控制端口输出高低电平,用于驱动LED,蜂鸣器,模拟通信协议输出时序等; 当控制功率较大的设备可以加入

    2024年02月03日
    浏览(15)
  • GPIO的八种输入输出模式

    以下图片摘自最后链接的视频,仅用于个人的学习记录。 输入:          1. 浮空输入: 浮空输入是指当一个电路或器件的输入端口未连接任何信号源时,其输入端口处于一种“悬空”状态,即没有明确的电平值。           2. 上拉输入: “上拉输入”是指在数字电路中,

    2024年02月10日
    浏览(11)
  • 单片机中GPIO八种工作模式详细分析

    今天给大家讲解一下 GPIO 基础,参考资料: STM32F1xx 官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功

    2024年02月16日
    浏览(9)
  • 【STM32】GPIO_InitTypeDef GPIO_InitStructure;语句的理解

    这句话声明一个结构体, 名字是GPIO_InitStructure ,结构体原型由GPIO_InitTypeDef 确定,在stm32中用来初始化GPIO。设置完GPIO_InitStructure里面的内容后然后在GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面调用。 但为什么GPIOx不需要取地址,但是GPIO_InitStructure为什么要用“”取

    2023年04月16日
    浏览(4)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包