|
作者 | strongerHuang
微信公眾號(hào) | strongerHuang
這是一個(gè)初學(xué)者不會(huì)去了解的問題,但,會(huì)使老司機(jī)掉坑的問題。
這也是最近在技術(shù)交流群看到的一個(gè)問題,所以,就出來簡單分享一下。
概述
這個(gè)問題看起來比較簡單,我相信很多人都能說出答案。
但是,很多人都只是停留在表面,沒有在項(xiàng)目中經(jīng)歷過,也沒有更深入的去了解。
heaoqrkr5jl64032870843.jpg (149.79 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
heaoqrkr5jl64032870843.jpg
2024-10-22 08:27 上傳
很早之前年的單片機(jī)可能沒有輸出速度這個(gè)配置選項(xiàng),但是這后面的單片機(jī)基本都有配置速度的選項(xiàng),下面結(jié)合STM32來簡單介紹一下。
GPIO輸出速度
不管標(biāo)準(zhǔn)外設(shè)庫,還是STM32CubeMX配置GPIO輸出引腳,都會(huì)有速度GPIO_InitStruct.Speed這個(gè)選項(xiàng)。
類似如下: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型號(hào),速度選項(xiàng),有些有3個(gè),有些有4個(gè)。一般定義在xxx_gpio.h文件中。#define GPIO_Speed_2MHz GPIO_Speed_Level_1 /*!#define GPIO_Speed_10MHz GPIO_Speed_Level_2 /*!#define GPIO_Speed_50MHz GPIO_Speed_Level_3 /*!
#define GPIO_SPEED_FREQ_LOW (0x00000000u) /*!#define GPIO_SPEED_FREQ_MEDIUM (0x00000001u) /*!#define GPIO_SPEED_FREQ_HIGH (0x00000002u) /*!#define GPIO_SPEED_FREQ_VERY_HIGH (0x00000003u) /*!
對(duì)于普通輸出GPIO,使用STM32CubeMX配置,默認(rèn)配置低:
3skvzuxj14p64032870943.png (17.41 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
3skvzuxj14p64032870943.png
2024-10-22 08:27 上傳
當(dāng)然,如果配置成其他模式,有可能是中,或高。
比如:配置UART、CAN引腳,速度會(huì)是高。
提問:你想過為什么會(huì)是低、高嗎?
測(cè)量GPIO輸出波形
不知道大家用示波器測(cè)量過GPIO輸出波形沒有,特別是在高速(單位M)的時(shí)候。
我以前經(jīng)常測(cè)量MCO引腳輸出時(shí)鐘,測(cè)量過的人應(yīng)該都知道,如果輸出速度高于配置速度,會(huì)明顯看到波形不正常。
波形會(huì)出現(xiàn)不完整,幅度低等失真現(xiàn)象。
相信不用我說,有一定常識(shí)的人都能理解。
差異原因
速度的配置,就是決定IO口驅(qū)動(dòng)電路的響應(yīng)速度。
我們需要結(jié)合實(shí)際情況配置速度,不同速度會(huì)有不同的影響。
高低速差異:配置高速:輸出頻率高,噪音大,功耗高,電磁干擾強(qiáng);
配置低速:輸出頻率低,噪音小,功耗低,電磁干擾弱;提高系統(tǒng)EMI(電磁干擾)性能;
看到差異,相信很多人就能理解了。
實(shí)際情況中,比如:低功耗的產(chǎn)品,你會(huì)考慮功耗。
環(huán)境不好的場(chǎng)合,通信不穩(wěn)定,你會(huì)考慮電磁干擾等。
舉例:如果你使用9600波特率UART通信,建議速度配置為低。
所以,如果你想使產(chǎn)品更加完美,速度配置也是關(guān)鍵的一項(xiàng)。------------ END ------------
umf4srmuk3i64032871043.gif (71.87 KB, 下載次數(shù): 5)
下載附件
保存到相冊(cè)
umf4srmuk3i64032871043.gif
2024-10-22 08:27 上傳
●專欄《嵌入式工具》●專欄《嵌入式開發(fā)》●專欄《Keil教程》●嵌入式專欄精選教程
關(guān)注公眾號(hào)回復(fù)“加群”按規(guī)則加入技術(shù)交流群,回復(fù)“1024”查看更多內(nèi)容。
點(diǎn)擊“閱讀原文”查看更多分享。 |
|