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通信,建议速度配置为低。

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

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

    关注

    2240

    文章

    10674

    浏览量

    348844
  • 输出
    +关注

    关注

    0

    文章

    88

    浏览量

    21575
  • GPIO
    +关注

    关注

    16

    文章

    1136

    浏览量

    50582
收藏 人收藏

    评论

    相关推荐

    请问如何提高STM32 GPIO输出速度

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

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

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

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

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

    STM32使用GPIO配置的5种方式

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

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

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

    STM32单片机的八种GPIO口模式

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

    STM32GPIO配置

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

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

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

    STM32 GPIO结构图讲解 STM32中上拉电阻或下拉电阻的作用

    STM32中的GPIO为例,如上图是GPIO的结构图。另外关于GPIO工作原理,请移步此文:STM32
    发表于 08-06 16:55 2018次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>结构图讲解 <b class='flag-5'>STM32</b>中上拉电阻或下拉电阻的作用

    STM32的8种GPIO模式理解

    最近在看数据手册的时候,发现STM32GPIO输入输出模式的配置种类有8种之多
    的头像 发表于 08-04 14:53 684次阅读

    STM32GPIO操作配置和使用方法

    本篇开始对STM32GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。
    的头像 发表于 07-07 16:50 3347次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>GPIO</b>操作<b class='flag-5'>配置</b>和使用方法

    单片机为何没有输出速度这个配置选项

    。   但是,很多人都只是停留在表面,没有在项目中经历过,也没有更深入的去了解。     很早之前年的单片机可能没有输出速度这个配置选项,但是这后面的单片机基本都有配置
    的头像 发表于 07-03 09:17 290次阅读
    单片机为何没有<b class='flag-5'>输出</b><b class='flag-5'>速度</b>这个<b class='flag-5'>配置</b>选项

    STM32GPIO在实际开发设计的使用配置和技巧

    一、前言 本篇开始对STM32GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。 了解过
    的头像 发表于 06-22 10:22 524次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>GPIO</b>在实际开发设计的使用<b class='flag-5'>配置</b>和技巧

    一文详解GPIO输出配置

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

    一文详解GPIO的输入配置

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