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

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

3天内不再提示

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

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-03-01 11:53 次阅读

今天有人问:GPIO配置不同输出速度会有什么影响?你知道答案吗?

1写在前面

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

但是,很多人都只是停留在表面,至于深层次的含义,估计很少有人思考。

需要更深理解其中含义,可能需要结合特定场景来说,我自己也是在项目中才深刻体会其中含义。

2GPIO输出速度

不管标准外设库,还是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配置,默认配置低:

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

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

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

3实验:测量GPIO输出波形

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

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

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

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

4具体原因

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

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

高低速差异:

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

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


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

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

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

举例:

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

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

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

    关注

    2253

    文章

    10779

    浏览量

    351633
  • 输出
    +关注

    关注

    0

    文章

    89

    浏览量

    21733
  • GPIO
    +关注

    关注

    16

    文章

    1164

    浏览量

    51408
收藏 人收藏

    评论

    相关推荐

    请问如何提高STM32GPIO输出速度

    由于应用需要,用 GPIO 输出高低电平产生脉冲,通过软件控制 GPIO 输出翻转。用的是 STM32F412, APB2最高达到100M,可实际
    发表于04-12 06:05

    stm32GPIO口的最大输出速度如何理解?

    stm32GPIO口的最大 输出 速度如何理解?
    发表于04-07 06:27

    stm32G070GPIO输出能力很弱的原因?

    stm32G070 GPIO输出能力似乎很弱, GPIO 配置如下 在 配置
    发表于03-29 09:10

    请问STM32普通的GPIO输出正确的配置方式是怎样的?

    普通IO 输出管脚默认 输出电平状态,而通过CubeMx工具 配置 GPIO顺序则是相反的,请问下这里是否存在设计不严谨地方?正确 配置顺序是怎样的?
    发表于03-29 06:00

    stm32怎么读取io口输入电平

    要读取 STM32的IO口输入电平,你可以使用 GPIO外设来完成。 GPIO是通用输入 输出端口,它可以 配置成输入模式,用于读取外部信号的电平。
    的头像 发表于01-05 11:46 3367次阅读

    使用STM32HAL库进行GPIO控制的实例

    在基于 STM32微控制器的嵌入式系统开发中, GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常见的操作之一。通过使用 STM32的HAL库,可以轻松地对 GPI
    的头像 发表于12-21 15:22 1943次阅读

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

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

    STM32如何配置外部中断?STM32外部中断配置步骤

    STM32如何 配置外部中断? STM32外部中断 配置步骤 作为一款现代化的微控制器, STM32系列芯片在各种应用场合中广泛应用。其中最常见的
    的头像 发表于10-26 17:47 2902次阅读

    STM32使用GPIO配置的5种方式

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

    STM32的PWM波形输出配置的大神总结

    STM32的PWM波形 输出 配置的大神总结
    的头像 发表于10-24 16:00 3183次阅读
    <b class='flag-5'>STM32</b>的PWM波形<b class='flag-5'>输出</b><b class='flag-5'>配置</b>的大神总结

    STM32GPIO的基本结构

    STM32中,所有 GPIO都是挂在APB2这个总线上面的;
    的头像 发表于10-24 09:24 756次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的基本结构

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

    单片机 GPIO 配置不同 输出 速度有何区别?
    的头像 发表于09-18 15:43 1665次阅读
    <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呢?

    为什么要在芯片中 配置 GPIO呢 作为一种基础的控制接口, GPIO(General Purpose Input/Output)即通用输入 输出端口,可用于控制数字设备。因为
    的头像 发表于09-13 15:28 986次阅读

    STM32单片机的八种GPIO口模式

    GPIO是通用输入/ 输出端口的简称,本文以 STM32为例进行说明,其他的单片机功能上都是大同小异,学会 STM32GPIO,我们可以触类旁
    发表于09-07 11:38 2798次阅读
    <b class='flag-5'>STM32</b>单片机的八种<b class='flag-5'>GPIO</b>口模式

    STM32GPIO配置

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