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通信,建议速度配置为低。 所以,如果你想使产品更加完美,速度配置也是关键的一项。

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

    关注

    6069

    文章

    45086

    浏览量

    653936
  • 引脚
    +关注

    关注

    16

    文章

    1832

    浏览量

    53441
  • GPIO
    +关注

    关注

    16

    文章

    1289

    浏览量

    54418

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32F103单片机串口引脚为何冲突呢?

    STM32F103CBT6单片机,通过STM32CubeMX工具设置了三个引脚(其他的引脚没有配置):将PA2设置为USART2_TX,将PA3设置为USART2_RX,将PA0配置
    发表于 05-21 06:32

    如何利用51单片机输出PWM波

    如何利用51单片机输出PWM波,控制电机转动速度
    发表于 12-31 14:26 ?230次下载

    为什么单片机的程序必须是死循环

    为何单片机的程序必须是死循环?!!这个问题困扰了我好久,然而答案却是这个样子的!单片机没有操作系
    发表于 07-05 17:41 ?0次下载
    为什么<b class='flag-5'>单片机</b>的程序必须是死循环

    单片机的执行速度与什么有关

    单片机的执行速度与什么有关呢,当然对于初学者来说,第一时间想到的是晶振,没错,晶振算一个,但准确的来说应该是单片机的时钟源(再具体一点就是单片机的系统时钟)。
    发表于 07-20 10:20 ?6282次阅读

    pic单片机与51单片机,谁更易于学习

    与 51 单片机,二者谁更易于学习,一起来了解下吧。 ? 一、概述 51 好学一些,但是 PIC 也没比 51 难多少。首先,PIC 比 51 多个配置位,这个基本上看看就懂了。然后,PIC 的端口要
    的头像 发表于 10-30 16:00 ?1517次阅读

    1.51单片机开发环境配置

    1.51单片机开发环境配置
    发表于 11-13 11:36 ?28次下载
    1.51<b class='flag-5'>单片机</b>开发环境<b class='flag-5'>配置</b>

    如何设置STM8单片机选项

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

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

    我们在开始学习51内核的单片机的时候就知道,p0口的引脚都是双向IO口,P1,P2,P3的IO口需要双向使用时需要外接上拉电阻,故称为准双向IO口,但是我们在学习STM32单片机的时候知道32的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>有何区别?

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

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

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

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

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

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

    不同速度单片机IO配置差异的原因是什么

    不知道大家用示波器测量过GPIO输出波形没有,特别是在高速(单位M)的时候。 我以前经常测量MCO引脚输出时钟,测量过的人应该都知道,如果输出
    发表于 10-10 18:21 ?860次阅读
    不同<b class='flag-5'>速度</b><b class='flag-5'>单片机</b>IO<b class='flag-5'>配置</b>差异的原因是什么

    怎么根据外围电路配置单片机gpio的时钟

    怎么根据外围电路配置单片机gpio的时钟? 根据外围电路配置单片机GPIO的时钟是一项重要的任务,它决定了单片机与外部设备的通信
    的头像 发表于 01-31 10:57 ?1667次阅读

    单片机io口怎么配置输出

    单片机IO口配置输出口的过程通常涉及对单片机内部寄存器的操作。不同型号的单片机在寄存器配置和编
    的头像 发表于 09-14 14:33 ?1684次阅读