這是一個初學(xué)者不會去了解的問題,但,會使老司機掉坑的問題。這也是最近在技術(shù)交流群看到的一個問題,所以,就出來簡單分享一下。
概述
這個問題看起來比較簡單,我相信很多人都能說出答案。但是,很多人都只是停留在表面,沒有在項目中經(jīng)歷過,也沒有更深入的去了解。
很早之前年的單片機可能沒有輸出速度這個配置選項,但是這后面的單片機基本都有配置速度的選項,下面結(jié)合STM32來簡單介紹一下。
GPIO輸出速度
不管標(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文件中。
#defineGPIO_Speed_2MHzGPIO_Speed_Level_1/*!#defineGPIO_SPEED_FREQ_LOW(0x00000000u)/*!
對于普通輸出GPIO,使用STM32CubeMX配置,默認(rèn)配置低:
當(dāng)然,如果配置成其他模式,有可能是中,或高。
提問:你想過為什么會是低、高嗎?
測量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)鍵的一項。
來源:strongerHuang
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理
審核編輯 黃宇
-
單片機
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635350 -
IO
+關(guān)注
關(guān)注
0文章
448瀏覽量
39156 -
GPIO
+關(guān)注
關(guān)注
16文章
1204瀏覽量
52104
發(fā)布評論請先 登錄
相關(guān)推薦
評論