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

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

3天内不再提示

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

strongerHuang 来源:strongerHuang 2023-07-03 09:17 次阅读

这是一个初学者不会去了解的问题,但,会使老司机掉坑的问题。 这也是最近在技术交流群看到的一个问题,所以,就出来简单分享一下。

概述

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

但是,很多人都只是停留在表面,没有在项目中经历过,也没有更深入的去了解。 02b5a804-1938-11ee-962d-dac502259ad0.jpg   很早之前年的单片机可能没有输出速度这个配置选项,但是这后面的单片机基本都有配置速度的选项,下面结合STM32来简单介绍一下。  

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配置,默认配置低: 02ea1f80-1938-11ee-962d-dac502259ad0.png   当然,如果配置成其他模式,有可能是中,或高。   比如:配置UART、CAN引脚,速度会是高。   提问:你想过为什么会是低、高吗?

测量GPIO输出波形

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

我以前经常测量MCO引脚输出时钟,测量过的人应该都知道,如果输出速度高于配置速度,会明显看到波形不正常。 波形会出现不完整,幅度低等失真现象。 相信不用我说,有一定常识的人都能理解。

差异原因

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

我们需要结合实际情况配置速度,不同速度会有不同的影响高低速差异: 配置高速:输出频率高,噪音大,功耗高,电磁干扰强; 配置低速:输出频率低,噪音小,功耗低,电磁干扰弱;提高系统EMI(电磁干扰)性能;
看到差异,相信很多人就能理解了。 实际情况中,比如:低功耗的产品,你会考虑功耗。 环境不好的场合,通信不稳定,你会考虑电磁干扰等。 举例: 如果你使用9600波特率UART通信,建议速度配置为低。 所以,如果你想使产品更加完美,速度配置也是关键的一项。

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

    关注

    6001

    文章

    43973

    浏览量

    620852
  • 引脚
    +关注

    关注

    16

    文章

    1045

    浏览量

    48968
  • GPIO
    +关注

    关注

    16

    文章

    1134

    浏览量

    50578

原文标题:单片机IO配置不同速度有啥区别?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瑞萨单片机IO口输出模式

    请教一个问题: RX系列单片机,目前用的RX140系列,在用的PE4口,没有输出模式的选项,PE1口输出模式就是CMOS output,这种
    发表于 12-22 16:25

    PIC单片机配置

    我知道PIC16F87X系列单片机配置字,现在请问:(1):是不是每次编程时都要设置配置字,可不不可以不设置,不设置有什么后果?(2):PIC单片机其他系列有
    发表于 11-19 07:46

    单片机利用中断如何保护数据?

    单片机断电时 可利用外部中把数据送到堆栈,做堆栈保护 或者送到E2PROM ,我的理解是此时单片机已然断电根本就没有能力 来供应外部中断 问为何
    发表于 11-03 15:41

    我的51单片机总结

    的工作?是因为它有一个工作时钟,在这个工作时钟的统一管理下,处理器有序的工作,这里的主频就是工作时钟的速度,当然,现在你可能也知道主频越高,取指译码速度越快,性能越好。那么你可能会问,这跟51
    发表于 07-09 16:40

    关于配置单片机

    大神们都过来说说,在你拿到一个新的单片机去应用的时候,首先你要配置它你想要的功能,比如I/O端口配置,中断配置,AD配置等等!那大家有
    发表于 06-14 10:16

    51单片机知识大汇总

    的基本思想就是五个字:配置寄存器。单片机怎么工作,比如,你让I/O口输出高电平,怎么输出,在C语言里,你是通过P1=0xFF来实现的,为什么这么写,你去看看头文件reg51.h里的内容
    发表于 07-27 10:33

    求助!单片机测自行车加速度

    `大四毕设老师要求做一个单片机自行车测速装置,要求:能测速度和加速度,要求两种测速方法,一个是通过软件求出,一个是打算用硬件积分求出,并能语音播报当前速度和加
    发表于 01-14 19:47

    stm32单片机准双向IO口配置介绍

    我们在开始学习51内核的单片机的时候就知道,p0口的引脚都是双向IO口,P1,P2,P3的IO口需要双向使用时需要外接上拉电阻,故称为准双向IO口,但是我们在学习STM32单片机的时候知道32的IO
    发表于 02-21 07:00

    什么时候51单片机管脚需要配置输出或者输入模式?

    什么时候51单片机管脚需要配置输出或者输入模式? 我看有的程序没有配置,有的程序有配置,一般哪些
    发表于 11-10 07:19

    单片机晶振又是什么呢?单片机中若是没有了晶振会怎么样呢?

    所以说,单片机没有了晶振,也就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作,程序也就无法烧入。因为
    的头像 发表于 10-15 11:34 4982次阅读

    如何设置STM8单片机选项

    如何设置STM8单片机选项
    发表于 12-03 12:36 12次下载
    如何设置STM8<b class='flag-5'>单片机</b><b class='flag-5'>选项</b>字

    关于stm32单片机准双向IO口配置

    口可以配置为8种状态,但是却没有双向IO这一选项,但是我们也可以通过一些操作将stm32的引脚配置为准双向IO口;配置stm32的IO口为准
    发表于 12-24 19:19 19次下载
    关于stm32<b class='flag-5'>单片机</b>准双向IO口<b class='flag-5'>配置</b>

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

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

    单片机IO配置不同速度有啥区别?

    单片机IO配置不同速度有啥区别?
    的头像 发表于 10-25 16:42 313次阅读
    <b class='flag-5'>单片机</b>IO<b class='flag-5'>配置</b>不同<b class='flag-5'>速度</b>有啥区别?

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

    单片机GPIO配置不同输出速度有何区别?
    的头像 发表于 09-18 15:43 1391次阅读
    GPIO<b class='flag-5'>配置</b>不同<b class='flag-5'>输出</b><b class='flag-5'>速度</b>会有什么影响