0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機為何沒有輸出速度這個配置選項

strongerHuang ? 來源:strongerHuang ? 2023-07-03 09:17 ? 次閱讀

這是一個初學(xué)者不會去了解的問題,但,會使老司機掉坑的問題。 這也是最近在技術(shù)交流群看到的一個問題,所以,就出來簡單分享一下。

概述

這個問題看起來比較簡單,我相信很多人都能說出答案。

但是,很多人都只是停留在表面,沒有在項目中經(jīng)歷過,也沒有更深入的去了解。 02b5a804-1938-11ee-962d-dac502259ad0.jpg ? 很早之前年的單片機可能沒有輸出速度這個配置選項,但是這后面的單片機基本都有配置速度的選項,下面結(jié)合STM32來簡單介紹一下。 ?

GPIO輸出速度

不管標準外設(shè)庫,還是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);
根據(jù)不同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 ? 當(dāng)然,如果配置成其他模式,有可能是中,或高。 ? 比如:配置UART、CAN引腳,速度會是高。 ? 提問:你想過為什么會是低、高嗎?

測量GPIO輸出波形

不知道大家用示波器測量過GPIO輸出波形沒有,特別是在高速(單位M)的時候。

我以前經(jīng)常測量MCO引腳輸出時鐘,測量過的人應(yīng)該都知道,如果輸出速度高于配置速度,會明顯看到波形不正常。 波形會出現(xiàn)不完整,幅度低等失真現(xiàn)象。 相信不用我說,有一定常識的人都能理解。

差異原因

速度的配置,就是決定IO口驅(qū)動電路的響應(yīng)速度。

我們需要結(jié)合實際情況配置速度,不同速度會有不同的影響。 高低速差異: 配置高速:輸出頻率高,噪音大,功耗高,電磁干擾強; 配置低速:輸出頻率低,噪音小,功耗低,電磁干擾弱;提高系統(tǒng)EMI(電磁干擾)性能;
看到差異,相信很多人就能理解了。 實際情況中,比如:低功耗的產(chǎn)品,你會考慮功耗。 環(huán)境不好的場合,通信不穩(wěn)定,你會考慮電磁干擾等。 舉例: 如果你使用9600波特率UART通信,建議速度配置為低。 所以,如果你想使產(chǎn)品更加完美,速度配置也是關(guān)鍵的一項。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628404
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1132

    瀏覽量

    49741
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51515

原文標題:單片機IO配置不同速度有啥區(qū)別?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32F103單片機串口引腳為何沖突呢?

    STM32F103CBT6單片機,通過STM32CubeMX工具設(shè)置了三個引腳(其他的引腳沒有配置):將PA2設(shè)置為USART2_TX,將PA3設(shè)置為USART2_RX,將PA0配置
    發(fā)表于 05-21 06:32

    如何利用51單片機輸出PWM波

    如何利用51單片機輸出PWM波,控制電機轉(zhuǎn)動速度
    發(fā)表于 12-31 14:26 ?230次下載

    為什么單片機的程序必須是死循環(huán)

    為何單片機的程序必須是死循環(huán)?!!這個問題困擾了我好久,然而答案卻是這個樣子的!單片機沒有操作系
    發(fā)表于 07-05 17:41 ?0次下載
    為什么<b class='flag-5'>單片機</b>的程序必須是死循環(huán)

    單片機的執(zhí)行速度與什么有關(guān)

    單片機的執(zhí)行速度與什么有關(guān)呢,當(dāng)然對于初學(xué)者來說,第一時間想到的是晶振,沒錯,晶振算一個,但準確的來說應(yīng)該是單片機的時鐘源(再具體一點就是單片機的系統(tǒng)時鐘)。
    發(fā)表于 07-20 10:20 ?5567次閱讀

    pic單片機與51單片機,誰更易于學(xué)習(xí)

    與 51 單片機,二者誰更易于學(xué)習(xí),一起來了解下吧。 ? 一、概述 51 好學(xué)一些,但是 PIC 也沒比 51 難多少。首先,PIC 比 51 多個配置位,這個基本上看看就懂了。然后,PIC 的端口要
    的頭像 發(fā)表于 10-30 16:00 ?946次閱讀

    1.51單片機開發(fā)環(huán)境配置

    1.51單片機開發(fā)環(huán)境配置
    發(fā)表于 11-13 11:36 ?28次下載
    1.51<b class='flag-5'>單片機</b>開發(fā)環(huán)境<b class='flag-5'>配置</b>

    如何設(shè)置STM8單片機選項

    如何設(shè)置STM8單片機選項
    發(fā)表于 12-03 12:36 ?12次下載
    如何設(shè)置STM8<b class='flag-5'>單片機</b><b class='flag-5'>選項</b>字

    關(guān)于stm32單片機準雙向IO口配置

    我們在開始學(xué)習(xí)51內(nèi)核的單片機的時候就知道,p0口的引腳都是雙向IO口,P1,P2,P3的IO口需要雙向使用時需要外接上拉電阻,故稱為準雙向IO口,但是我們在學(xué)習(xí)STM32單片機的時候知道32的IO
    發(fā)表于 12-24 19:19 ?19次下載
    關(guān)于stm32<b class='flag-5'>單片機</b>準雙向IO口<b class='flag-5'>配置</b>

    單片機GPIO配置不同輸出速度有何區(qū)別?

    不管標準外設(shè)庫,還是STM32CubeMX配置GPIO輸出引腳,都會有速度GPIO_InitStruct.Speed這個選項。
    發(fā)表于 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>有何區(qū)別?

    STM32單片機的GPIO輸入、輸出模式與配置方法

    STM32 單片機是一款高性能、低功耗的 32 位微控制器,具有強大的計算能力、靈活的外設(shè)模塊和實現(xiàn)微控制器應(yīng)用所需的社區(qū)支持。在單片機應(yīng)用中,GPIO 輸入輸出模式是必不可少的硬件接口之一。本文將介紹 STM32
    發(fā)表于 08-15 18:23 ?7591次閱讀

    單片機IO配置不同速度有啥區(qū)別?

    單片機IO配置不同速度有啥區(qū)別?
    的頭像 發(fā)表于 10-25 16:42 ?563次閱讀
    <b class='flag-5'>單片機</b>IO<b class='flag-5'>配置</b>不同<b class='flag-5'>速度</b>有啥區(qū)別?

    GPIO配置不同輸出速度會有什么影響

    單片機GPIO配置不同輸出速度有何區(qū)別?
    的頭像 發(fā)表于 09-18 15:43 ?1752次閱讀
    GPIO<b class='flag-5'>配置</b>不同<b class='flag-5'>輸出</b><b class='flag-5'>速度</b>會有什么影響

    不同速度單片機IO配置差異的原因是什么

    不知道大家用示波器測量過GPIO輸出波形沒有,特別是在高速(單位M)的時候。 我以前經(jīng)常測量MCO引腳輸出時鐘,測量過的人應(yīng)該都知道,如果輸出
    發(fā)表于 10-10 18:21 ?361次閱讀
    不同<b class='flag-5'>速度</b><b class='flag-5'>單片機</b>IO<b class='flag-5'>配置</b>差異的原因是什么

    怎么根據(jù)外圍電路配置單片機gpio的時鐘

    怎么根據(jù)外圍電路配置單片機gpio的時鐘? 根據(jù)外圍電路配置單片機GPIO的時鐘是一項重要的任務(wù),它決定了單片機與外部設(shè)備的通信
    的頭像 發(fā)表于 01-31 10:57 ?887次閱讀

    單片機io口怎么配置輸出

    單片機IO口配置輸出口的過程通常涉及對單片機內(nèi)部寄存器的操作。不同型號的單片機在寄存器配置和編
    的頭像 發(fā)表于 09-14 14:33 ?201次閱讀