寫在前面的話,為什么另需定時(shí)器進(jìn)行微秒級延時(shí)。
1.在HAL固件庫中只有使用Systick作為延時(shí)計(jì)數(shù)器,毫秒級延時(shí)HAL_Delay()。為了增加精確的微秒級延時(shí),一般都是更改Systick配置參數(shù),但HAL固件庫許多地方都使用了HAL_Delay()函數(shù),因此建議大家不要修改系統(tǒng)自動(dòng)配置的Systick參數(shù);
2.個(gè)人覺得到加入操作系統(tǒng)時(shí)要占用Systick,而MCU系統(tǒng)自身的時(shí)基還要選擇其他的定時(shí)器,綜上所述,對Systick做的更改基本白搭;
因此采用定時(shí)器控制微妙延時(shí)的方法,是比較靈活的。需要用戶增加的代碼很少,經(jīng)濟(jì)實(shí)用,節(jié)能環(huán)保- -;
步驟1.配置時(shí)鐘
注意,一定要確定紅色部分標(biāo)記的晶振頻率要與實(shí)際的晶振保持一致。
步驟2.配置定時(shí)器
在配置定時(shí)器時(shí),需要明確以下幾點(diǎn):
1. 定時(shí)器時(shí)鐘頻率;
2. 定時(shí)器溢出頻率;
首先,我們看一下比較重要的寄存器,如下所示:
用紅線標(biāo)記的地方可得:
定時(shí)器工作頻率=**經(jīng)過內(nèi)部時(shí)鐘分頻的**APBx Timer Clock/PSC寄存器的值+1;
舉個(gè)栗子,如下:
即定時(shí)器的時(shí)鐘頻率為84MHz,不用用內(nèi)部時(shí)鐘分頻,要使定時(shí)器的工作頻率為1MHz(1us),如下:
1MHz=84MHz/(83+1);
定時(shí)器的溢出頻率=定時(shí)器的工作頻率/arr
關(guān)于arr重載值何時(shí)載入,即發(fā)生溢出更新事件后,才會(huì)載入新值;
相關(guān)配置如下:
系統(tǒng)時(shí)鐘配置,見上圖;
這里我使用了TIM14通用定時(shí)器來進(jìn)行1us延時(shí),配置如下:
步驟3.編寫代碼
void delay_us(uint16_t us)
{
uint16_t differ=0xffff-us-5;
/*為防止因中斷打斷延時(shí),造成計(jì)數(shù)錯(cuò)誤.
如從0xfffE開始延時(shí)1us,但由于中斷打斷
(此時(shí)計(jì)數(shù)器仍在計(jì)數(shù)),本因計(jì)數(shù)至0xffff)
便停止計(jì)數(shù),但由于錯(cuò)過計(jì)數(shù)值,并重載arr值,
導(dǎo)致實(shí)際延時(shí)(0xffff+1)us
*/
HAL_TIM_Base_Start(&htim14);
__HAL_TIM_SetCounter(&htim14,differ);
while(differ<0xffff-5)
{
differ=__HAL_TIM_GetCounter(&htim14);
}
HAL_TIM_Base_Stop(&htim14);
}
因?yàn)椴捎玫氖窍蛏嫌?jì)數(shù)方式,因此需要轉(zhuǎn)換一下,向下計(jì)數(shù)方式不用;
測試代碼如下:
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
delay_us(5);
}
/* USER CODE END 3 */
實(shí)際波形如下:
上一篇:STM32——系統(tǒng)滴答定時(shí)器
下一篇:STM32 CubeMX如何生成微秒(us)級延時(shí)
推薦閱讀
史海拾趣
隨著公司規(guī)模的擴(kuò)大和技術(shù)的不斷積累,AVAGO公司開始尋求多元化的發(fā)展道路。除了繼續(xù)深耕半導(dǎo)體領(lǐng)域外,公司還積極拓展其他相關(guān)領(lǐng)域,如傳感器、無線通信等。同時(shí),公司還與其他行業(yè)的領(lǐng)軍企業(yè)建立了緊密的戰(zhàn)略合作關(guān)系,共同推動(dòng)技術(shù)創(chuàng)新和市場拓展。
在電子行業(yè)競爭日益激烈的背景下,AMP公司面臨著來自同行的巨大壓力。為了應(yīng)對這一挑戰(zhàn),公司進(jìn)行了戰(zhàn)略調(diào)整,將重心轉(zhuǎn)向高端電子產(chǎn)品的研發(fā)和生產(chǎn)。通過不斷提升產(chǎn)品性能和品質(zhì),AMP公司成功打造了多個(gè)高端品牌,并在細(xì)分市場中取得了顯著優(yōu)勢。此外,公司還積極拓展新的應(yīng)用領(lǐng)域,為未來發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
Celduc Relais公司注重企業(yè)文化的建設(shè),倡導(dǎo)創(chuàng)新、協(xié)作、責(zé)任和卓越的核心價(jià)值觀。公司通過舉辦各類文化活動(dòng)、培訓(xùn)和學(xué)習(xí)等方式,提升員工的凝聚力和歸屬感。同時(shí),公司還建立了完善的激勵(lì)機(jī)制,鼓勵(lì)員工積極創(chuàng)新、追求卓越。這一舉措為公司的發(fā)展提供了強(qiáng)大的文化支撐和人才保障。
這五個(gè)故事只是Celduc Relais公司發(fā)展歷程中的冰山一角,但它們足以展現(xiàn)出公司在技術(shù)創(chuàng)新、市場拓展、質(zhì)量管理、環(huán)保理念和企業(yè)文化建設(shè)等方面的努力和成就。正是這些因素的共同作用,使得Celduc Relais公司在電子行業(yè)中脫穎而出,成為一家備受尊敬的企業(yè)。
隨著國內(nèi)市場的逐漸飽和,AF International開始尋求海外市場的拓展。公司派遣專業(yè)的銷售團(tuán)隊(duì)前往歐美、東南亞等地區(qū),與當(dāng)?shù)仄髽I(yè)建立合作關(guān)系,推廣自己的產(chǎn)品。同時(shí),AF International還積極參與國際電子展會(huì),展示公司的最新技術(shù)和產(chǎn)品,吸引了眾多國際客戶的關(guān)注。通過不斷的努力,AF International成功打開了海外市場,實(shí)現(xiàn)了國際化發(fā)展的目標(biāo)。
1970年,Corning Cable Systems公司憑借其創(chuàng)新技術(shù),成功發(fā)明了世界上首款低損耗光纖。這一里程碑式的發(fā)明徹底改變了通信行業(yè)的面貌,推動(dòng)了光纖通信的飛速發(fā)展。此后,公司不斷突破技術(shù)壁壘,提升光纖性能,為全球范圍內(nèi)的通信網(wǎng)絡(luò)建設(shè)提供了強(qiáng)有力的支持。
(畢業(yè)設(shè)計(jì))基于FPGA的數(shù)據(jù)采集系統(tǒng) 亂了 一大堆的資料 可現(xiàn)在確實(shí)不知道該從何處下手了。。 求哪個(gè)做個(gè)這個(gè)題目的大哥大姐給個(gè)參考啊 謝謝了。。 我的郵箱:wendy0109@sina.com… 查看全部問答∨ |
專家好: 我的PDA前兩天在公司測試部門發(fā)現(xiàn),按鍵進(jìn)入深度休眠后,不能馬上按鍵喚醒,只有等5~6秒(大約值)后才能馬上喚醒 我的按鍵休眠是設(shè)置的GPIO0,喚醒源也是GPIO0 具體的設(shè)置如下: &nbs ...… 查看全部問答∨ |
關(guān)于TAPI的lineInitializeEx的困惑 Windows Embedded CE 6.0幫助文檔中介紹,Establishing a Modem Connection的流程如下: lineInitializeEx ↓ lineOpen ↓ lineMakeCall ↓ lineGetMessage & ...… 查看全部問答∨ |
|
#include #include void main() { int i=7,j=2; float f=(float)i/j; SCON = 0x50; TMOD |= 0x20; TH1 = 0xf3; TR1 = 1; TI = 1; printf(\"%f\",f); while(1) {} } 這個(gè)程序?yàn)槭裁丛谶\(yùn)行的時(shí)候 在串口輸入串口 沒看到東西啊 ...… 查看全部問答∨ |
$(\'swf_vSx\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://www.tudou.com/v/IJy11e9LXmk/v.swf\'), \'quality\', ...… 查看全部問答∨ |
若我有一臺17KW 600V的無刷電機(jī),控制器的驅(qū)動(dòng)部分因該選用哪種IGBT和驅(qū)動(dòng)芯片呀,求個(gè)型號以供參考,謝謝了… 查看全部問答∨ |
【設(shè)計(jì)工具】quartus ii中文用戶教程及配置與下載 quartus ii中文用戶教程是全中文的,利于我們快速進(jìn)入開發(fā)流程。配置與編程下載文檔為我們開發(fā)掃清前期障礙,順利入門。… 查看全部問答∨ |
上次發(fā)的CD機(jī),怎么看都是很寒酸的東西…… 沒有外殼……板子和機(jī)器分離……哎…… 改進(jìn)嘛~~總之,這一版不裸奔了~~ 先上圖~ 嗯……這一版的方案是:CD模擬輸出——放大器——聲音出來啦~~ 這樣搞,音質(zhì)還是欠佳,畢竟CD機(jī)芯不值錢。 注 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 直播已結(jié)束|如何通過【TI MSPM0 固件示例】及【常用電機(jī)驅(qū)動(dòng)器方案和拓?fù)洹?,?0分鐘內(nèi)旋轉(zhuǎn)電機(jī)
- 快來訪問泰克高速串行通信專題 配置您的專屬解決方案 贏好禮!
- 有獎(jiǎng)活動(dòng)“庖丁”解智能睡眠監(jiān)測儀,一波“水軍”來圍觀
- ADI有獎(jiǎng)下載活動(dòng)之20:基于NDIR和PID的ADI氣體探測器解決方案和新產(chǎn)品
- 【已結(jié)束】RIGOL直播|示波器、可編程直流電源應(yīng)用分享
- 村田在線課堂:健康篇
- 快來應(yīng)援吧!投票選出你最愛的TI培訓(xùn)課程
- 飛思卡爾16位單片機(jī)(十三)—— SPI模塊測試
- 飛思卡爾16位單片機(jī)(十四)—— CAN總線模塊測試
- 通過快速納米傳感器技術(shù)診斷防治傳染病
- 飛思卡爾16位單片機(jī)(十五)—— 如何批量燒寫芯片
- 51單片機(jī)(一)—— 51單片機(jī)簡介
- IBM持續(xù)2018年投入?yún)^(qū)塊鏈
- 各國熱推“人臉識別技術(shù)購物”
- 常程確認(rèn)回歸聯(lián)想移動(dòng)中國區(qū),任中國區(qū)產(chǎn)品總負(fù)責(zé)人
- 蘋果應(yīng)用新年第一天銷售額創(chuàng)新記錄
- 蘋果App Store元旦銷售額達(dá)3億美元 創(chuàng)下新紀(jì)錄