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
    +关注

    关注

    2295

    文章

    11034

    浏览量

    365956
  • 输出
    +关注

    关注

    0

    文章

    96

    浏览量

    22284
  • GPIO
    +关注

    关注

    16

    文章

    1283

    浏览量

    54285
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HTR3310 10路LED驱动器和GPIO控制器中文手册

    输入或输出。? ? ?通电后,10个IO端口配置默认为GPIO输出,默认状态根据AD0和AD1决定。所有配置为输入的IO端口都会持续监控状态
    发表于 04-14 16:31 ?1次下载

    HTR3316 16路LED驱动器和GPIO控制器中文手册

    输入或输出。? ? ?通电后,16个IO端口配置默认为GPIO输出,默认状态根据AD0和AD1决定。所有配置为输入的IO端口都会持续监控状态
    发表于 04-11 17:51 ?0次下载

    为什么GPIO配置总是出问题?

    STM32开发中,GPIO(通用输入输出配置看似简单,但在实际开发中,很多人常常会遇到这些困惑:明明按照教程配置
    的头像 发表于 04-07 11:59 ?744次阅读
    为什么<b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>总是出问题?

    STM32学习GPIO之设计篇

    今日分享 GPIO 结合寄存器以及硬件电路,再来举例子分析输入输出。寄存器介绍:通过寄存器的位标注 rw,我们可知这个寄存器的某个位是可读(r)并且可写 的(w),我们也可以通过读寄存器里面的值得
    发表于 03-27 13:57 ?2次下载

    使用stm32f405做6步pwm输出时,定时器配置由强制输出转为pwm,com触发后会有延迟生效的现象,怎么解决?

    我在使用stm32f405做6步pwm输出时发现,定时器的配置由pwm改为强制输出后会在com触发时立即生效,但是定时器配置由强制
    发表于 03-13 07:24

    GPIO使用教程 GPIO接口应用

    GPIO(General-Purpose Input/Output,通用输入/输出)接口是电子设备中的一个重要组成部分,主要用于控制和读取设备的数字信号。它通过简单的高(1)或低(0)电平来与系统
    的头像 发表于 01-31 10:10 ?3542次阅读

    GPIO模块与其他外设的连接方法

    输入或输出模式。在输入模式下,GPIO引脚可以读取外部信号的状态;在输出模式下,它们可以向外部设备发送信号。此外,GPIO引脚还可以被配置
    的头像 发表于 01-09 09:48 ?1044次阅读

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GP
    的头像 发表于 01-09 09:46 ?2465次阅读

    如何配置GPIO引脚

    在嵌入式系统设计中,GPIO(通用输入/输出)引脚是连接微控制器与外部世界的重要桥梁。它们可以被配置为输入或输出模式,用于读取传感器数据、控制LED灯、驱动电机等。
    的头像 发表于 01-09 09:39 ?1352次阅读

    GPIO内部电路的原理

    前言 笔者近日在B站刷到了一个视频,使我对GPIO的I/O口内部基本结构以及工作原理有了恍然大明白的理解,现在对此做一个总结,并为大家推荐该视频Keysking 【STM32GPIO内部电路
    的头像 发表于 11-20 09:24 ?1399次阅读
    <b class='flag-5'>GPIO</b>内部电路的原理

    stm32 GPIO中断配置教程

    在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断是STM32微控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速
    的头像 发表于 11-19 15:53 ?3566次阅读

    STM32 GPIO的八种工作模式

    GPIO (general purpose input output)是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与
    的头像 发表于 11-06 09:40 ?2070次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八种工作模式

    gpio接口是干什么的 gpio四种输入输出模式怎么选择

    GPIO接口的作用 GPIO(General Purpose Input/Output)接口,即通用输入输出接口,是一种用于连接和控制各种外部设备的数字接口。它由一组引脚组成,可以通过编程的方式控制
    的头像 发表于 10-06 16:07 ?7847次阅读

    GPIO静电放电防护方案

    其他集成电路(IC)上常见的接口,它允许这些设备与外部世界进行交互。GPIO接口提供了基本的数字信号功能,可通过软件分别配置成输入或输出,即能够作为输入读取外部设备的状态(如按钮是否被按下),或者作为
    的头像 发表于 09-19 17:02 ?775次阅读
    <b class='flag-5'>GPIO</b>静电放电防护方案

    使用STM32CubeMX对红外波形进行GPIO输出,并LED显示

    @TOC 概述 本篇文章主要介绍如何使用STM32CubeMX对红外波形进行GPIO输出,并LED显示。 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 教学
    发表于 09-04 14:19