RM新时代网站-首页

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

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

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

關(guān)于STM32的GPIO配置不同輸出速度會有什么影響?

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-03-01 11:53 ? 次閱讀

今天有人問:GPIO配置不同輸出速度會有什么影響?你知道答案嗎?

1寫在前面

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

但是,很多人都只是停留在表面,至于深層次的含義,估計很少有人思考。

需要更深理解其中含義,可能需要結(jié)合特定場景來說,我自己也是在項目中才深刻體會其中含義。

2GPIO輸出速度

不管標(biāo)準(zhǔn)外設(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配置,默認(rèn)配置低:

當(dāng)然,如果配置成其他模式,有可能是中,或高。

比如:配置UART、CAN引腳,速度會是高。

提問:你想過為什么會是低、高嗎?

3實驗:測量GPIO輸出波形

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

我以前經(jīng)常測量MCO引腳輸出時鐘,測量過的人應(yīng)該都知道,如果輸出速度和配置速度不匹配,會明顯看到波形不正常。

波形會出現(xiàn)不完整,幅度低等失真現(xiàn)象。

相信不用我說,有一定常識的人都能理解。

4具體原因

速度的配置,就是決定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)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355721
  • 輸出
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    21828
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1204

    瀏覽量

    52051
收藏 人收藏

    評論

    相關(guān)推薦

    stm32 GPIO中斷配置教程

    在嵌入式開發(fā)中,STM32微控制器因其高性能和豐富的外設(shè)而廣受歡迎。GPIO(通用輸入/輸出)中斷是STM32微控制器中常用的功能之一,它允許開發(fā)者在特定引腳上檢測到外部信號變化時快速
    的頭像 發(fā)表于 11-19 15:53 ?674次閱讀

    STM32 GPIO的八種工作模式

    GPIO (general purpose input output)是通用輸入輸出端口的簡稱,簡單來說就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設(shè)備連接起來,從而實現(xiàn)與
    的頭像 發(fā)表于 11-06 09:40 ?505次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八種工作模式

    使用STM32CubeMX對紅外波形進(jìn)行GPIO輸出,并LED顯示

    @TOC 概述 本篇文章主要介紹如何使用STM32CubeMX對紅外波形進(jìn)行GPIO輸出,并LED顯示。 硬件準(zhǔn)備 首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是NUCLEO-F030R8的開發(fā)板: 教學(xué)
    發(fā)表于 09-04 14:19

    STM32 GPIO八種模式及工作原理詳解

    一. 前言 ??GPIO全稱General Purpose Input Output,是微控制數(shù)字輸入/輸出的基本模塊,可以實現(xiàn)微控制器與外部環(huán)境的數(shù)字進(jìn)行交換。借助GPIO微控制器可以實現(xiàn)對外
    的頭像 發(fā)表于 07-22 09:32 ?6199次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>八種模式及工作原理詳解

    請問STM32WB55RG怎么配置GPIO輸入模式?

    在CubeMX中配置STM32WB55的GPIO輸入模式時,在下拉選擇中為何沒有輸入模式選擇?
    發(fā)表于 05-23 07:58

    GPIO配置中有GPIO_Speed_10MHz 、GPIO_Speed_2MHz 和 GPIO_Speed_50MHz,這些是表示IO口的變換速度嗎?

    GPIO配置中有GPIO_Speed_10MHz 、GPIO_Speed_2MHz 和 GPIO_Speed_50MHz,這些是表示IO口
    發(fā)表于 05-16 06:46

    請問如何提高STM32 GPIO輸出速度?

    由于應(yīng)用需要,用GPIO輸出高低電平產(chǎn)生脈沖,通過軟件控制GPIO輸出翻轉(zhuǎn)。用的是STM32F412, APB2最高達(dá)到100M,可實際
    發(fā)表于 04-12 06:05

    STM32上電啟動后,會有幾率出現(xiàn)程序運行速度變慢的現(xiàn)象,是為什么?

    大家好: 請教個問題,我上電啟動后,會有幾率出現(xiàn)程序運行速度變慢的現(xiàn)象,比如定時器1s閃爍一次燈,變成了5s閃爍一次。重新上電或軟復(fù)位后正常。 感覺是啟動時,STM32有幾率出現(xiàn)時鐘沒配置
    發(fā)表于 04-08 07:47

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

    stm32GPIO口的最大輸出速度如何理解?
    發(fā)表于 04-07 06:27

    stm32G070 GPIO輸出能力很弱的原因?

    stm32G070 GPIO輸出能力似乎很弱,GPIO配置如下 在配置
    發(fā)表于 03-29 09:10

    請問STM32普通的GPIO輸出正確的配置方式是怎樣的?

    普通IO輸出管腳默認(rèn)輸出電平狀態(tài),而通過CubeMx工具配置GPIO順序則是相反的,請問下這里是否存在設(shè)計不嚴(yán)謹(jǐn)?shù)胤??正確配置順序是怎樣的?
    發(fā)表于 03-29 06:00

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

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

    GPIO為例,RTE配置完后會有xmc_gpio.h、xmc1_gpio.h、xmc_gpio.c、xmc1_gpio.c,四個的關(guān)系是什么樣的?

    GPIO為例,RTE配置完后,會有xmc_gpio.h、xmc1_gpio.h、xmc_gpio
    發(fā)表于 01-29 06:24

    stm32怎么讀取io口輸入電平

    要讀取STM32的IO口輸入電平,你可以使用GPIO外設(shè)來完成。GPIO是通用輸入輸出端口,它可以配置成輸入模式,用于讀取外部信號的電平。
    的頭像 發(fā)表于 01-05 11:46 ?4862次閱讀

    STM32無法正常輸出PWM信號的原因及解決方法

    無法正常輸出PWM信號的問題。本文將探討STM32無法正常輸出PWM信號的原因,并提供解決方法。 一、引腳配置錯誤 STM32微控制器的每個
    的頭像 發(fā)表于 01-02 17:38 ?9888次閱讀
    RM新时代网站-首页