0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPIO配置不同输出速度会有什么影响

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-18 15:43 次阅读

有读者问:GPIO配置不同输出速度会有什么影响?

1、写在前面

这个问题看起来比较简单,我相信很多人都能说出答案。

但是,很多人都只是停留在表面,没有在项目中经历过,也没有更深入的去了解。

poYBAGIB2beAf9tQAAMm0IyiybQ744.png

很早之前年的单片机可能没有输出速度这个配置选项,但是这后面的单片机基本都有配置速度的选项,下面结合STM32来简单介绍一下。

2、GPIO输出速度

不管标准外设库,还是STM32CubeMX配置GPIO输出引脚,都会有速度GPIO_InitStruct.Speed这个选项。

类似如下:

GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, GPIO_InitStruct);

根据不同MCU型号,速度选项,有些有3个,有些有4个。一般定义在xxx_gpio.h文件中。

#define GPIO_Speed_2MHz GPIO_Speed_Level_1 /*!< I/O output speed: Low 2 MHz */ #define GPIO_Speed_10MHz GPIO_Speed_Level_2 /*!< I/O output speed: Medium 10 MHz */ #define GPIO_Speed_50MHz GPIO_Speed_Level_3 /*!< I/O output speed: High 50 MHz */#define GPIO_SPEED_FREQ_LOW (0x00000000u) /*!< Low speed */ #define GPIO_SPEED_FREQ_MEDIUM (0x00000001u) /*!< Medium speed */ #define GPIO_SPEED_FREQ_HIGH (0x00000002u) /*!< High speed */ #define GPIO_SPEED_FREQ_VERY_HIGH (0x00000003u) /*!< Very high speed */

对于普通输出GPIO,使用STM32CubeMX配置,默认配置低:

poYBAGIB2biAXkvDAAC8ccBkYGA990.png

当然,如果配置成其他模式,有可能是中,或高。

比如:配置UARTCAN引脚,速度会是高。

提问:你想过为什么会是低、高吗?

3、实验:测量GPIO输出波形

不知道大家用示波器测量过GPIO输出波形没有,特别是在高速(单位M)的时候。

我以前经常测量MCO引脚输出时钟,测量过的人应该都知道,如果输出速度高于配置速度,会明显看到波形不正常。

波形会出现不完整,幅度低等失真现象。

相信不用我说,有一定常识的人都能理解。

4、具体原因

速度的配置,就是决定IO口驱动电路的响应速度。

我们需要结合实际情况配置速度,不同速度会有不同的影响。

高低速差异:

配置高速:输出频率高,噪音大,功耗高,电磁干扰强;

配置低速:输出频率低,噪音小,功耗低,电磁干扰弱;提高系统EMI(电磁干扰)性能;

看到差异,相信很多人就能理解了。

实际情况中,比如:低功耗的产品,你会考虑功耗。

环境不好的场合,通信不稳定,你会考虑电磁干扰等。

举例:

如果你使用9600波特率UART通信,建议速度配置为低。

所以,如果你想使产品更加完美,速度配置也是关键的一项。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634628
  • 示波器
    +关注

    关注

    113

    文章

    6240

    浏览量

    184794
  • 电磁干扰
    +关注

    关注

    36

    文章

    2312

    浏览量

    105391
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52051
收藏 人收藏

    评论

    相关推荐

    一文详解GPIO输出配置

    引言:GPIO,即General purpose input output,通用输入输出端口,是可以根据实际使用场景需求来用软件来配置的引脚。需要注意的是,一款芯片的引脚分为其实分为很多域,比如仅为
    发表于 06-14 16:41 3081次阅读
    一文详解<b class='flag-5'>GPIO</b>的<b class='flag-5'>输出</b><b class='flag-5'>配置</b>

    请问GPIO配置配置速度的值是什么呢?

    配置GPIO管脚的时候,引脚,模式都有一个对应的地址或者标号,比如A2的复用推挽输出,引脚就是GPIO_Pin_2((uint16_t)0x0004),模式是
    发表于 01-29 06:16

    GPIO模式配置

    一、 GPIO模式配置1、输入/输出模式(参考stm32手册)2、GPIO输出模式下,几种速度
    发表于 08-20 06:33

    GPIO配置不同输出速度会有什么影响

    今天有人问:GPIO配置不同输出速度会有什么影响? 你知道答案吗?写在前面这个问题看起来比较简单,我相信很多人都能说出答案。但是,很多人都只
    发表于 08-20 06:08

    GPIO配置不同输出速度会有什么影响吗

    置顶/星标公众号,不错过每一条消息今天有人问:GPIO配置不同输出速度会有什么影响?你知道答案吗?1写在前面这个问题看起来比较简单,我相信很
    发表于 08-23 09:03

    关于STM32的GPIO配置不同输出速度会有什么影响?

    STM32的GPIO配置不同输出速度会有什么影响?
    的头像 发表于 03-01 11:53 1.2w次阅读
    关于STM32的<b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>不同<b class='flag-5'>输出</b><b class='flag-5'>速度</b><b class='flag-5'>会有</b>什么影响?

    GPIO配置

    有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入的区别最近在看数据手册的时候,发现在Cortex-M3里,对于
    发表于 12-01 10:36 13次下载
    <b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>

    嵌入式系统(五):GPIO(输入输出端口扩展器)接口

    模式(iv)开漏输出模式(v)输出速度与钳位功能(2)STM32芯片GPIO特点:2. GPIO寄存器和库函数;(1)
    发表于 12-01 11:21 9次下载
    嵌入式系统(五):<b class='flag-5'>GPIO</b>(输入<b class='flag-5'>输出</b>端口扩展器)接口

    STM32中GPIO_Mode--GPIO配置

    本篇由转载而来,有侵权请联系作者,谢谢。原博客地址:https://blog.csdn.net/snow416/article/details/6540646一、GPIO配置(1
    发表于 12-28 19:33 13次下载
    STM32中<b class='flag-5'>GPIO_Mode--GPIO</b><b class='flag-5'>配置</b>

    关于STM32 GPIO配置等问题

    英文参考手册也有内容无差别二、模式我们搜索的大多数资料显示的都是有8种模式;输入4种输出4种。但今天我们就不按照那种思路来整理GPIO的模式了。我们通过GPIO配置来看看有哪些模式。
    发表于 01-13 16:22 3次下载
    关于STM32 <b class='flag-5'>GPIO</b>的<b class='flag-5'>配置</b>等问题

    单片机GPIO配置不同输出速度有何区别?

    不管标准外设库,还是STM32CubeMX配置GPIO输出引脚,都会有速度GPIO_InitSt
    发表于 02-08 15:24 3次下载
    单片机<b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>不同<b class='flag-5'>输出</b><b class='flag-5'>速度</b>有何区别?

    STM32单片机的GPIO输入、输出模式与配置方法

    STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接口之一。本文将介绍 STM32 单片机的 GPIO
    发表于 08-15 18:23 8291次阅读

    STM32的GPIO配置

    STM32微控制器通用输入/输出引脚(GPIO)提供许多与应用框架内外部电路相连接的方法。本应用笔记提供有关GPIO配置的基本信息,以及硬件和软件开发人员使用
    发表于 08-31 10:50 1次下载

    STM32使用GPIO配置的5种方式

    STM32使用GPIO配置的5种方式 STM32是常见的一种微控制器,其GPIO模块可以实现对外部设备的控制和数据传输,包括数字I/O口、模拟输入口和输出口等。在STM32中,
    的头像 发表于 10-26 17:42 1456次阅读

    如何配置GPIO为中断功能呢?

    如何在嵌入式系统中配置GPIO为中断功能。 一、GPIO基础 GPIO是General Purpose Input/Output的缩写,中文意为通用输入
    的头像 发表于 10-30 09:57 3462次阅读