STM32延時(shí)函數(shù)的方法
1.普通延時(shí)法
這個(gè)比較簡(jiǎn)單,讓單片機(jī)做一些無(wú)關(guān)緊要的工作來(lái)打發(fā)時(shí)間,經(jīng)常用循環(huán)來(lái)實(shí)現(xiàn),不過(guò)要做的比較精準(zhǔn)還是要下一番功夫。
2.SysTick 定時(shí)器延時(shí)
CM3 內(nèi)核的處理器,內(nèi)部包含了一個(gè)SysTick 定時(shí)器,SysTick 是一個(gè)24 位的倒計(jì)數(shù)定時(shí)器,當(dāng)計(jì)到0 時(shí),將從RELOAD寄存器中自動(dòng)重裝載定時(shí)初值。
延時(shí)函數(shù)delay的編寫
原理:3層for循環(huán),循環(huán)次數(shù)是 NUM = 4X5X248 = 4960次,由每次循環(huán)都有條件判斷(如 i 》0)和自減語(yǔ)句(如 i--),因此每次循環(huán)又耗費(fèi)兩個(gè)機(jī)器周期
所以,總耗費(fèi)的機(jī)器周期為 SUM = NUM x 2 = 9920個(gè)。
整合自:CSDN的沐白001、ZJE_ANDY
編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
最近從keil轉(zhuǎn)到CUBEIDE編程了,現(xiàn)在非常不舒服的一點(diǎn)是函數(shù)注釋方面。STM32CUBEide有沒(méi)有像KEIL一樣可以自己指定函數(shù)注釋模板的方法,可以注釋
發(fā)表于 03-11 08:06
STM32F030內(nèi)部晶振怎么設(shè)置,內(nèi)部晶振是延時(shí)函數(shù)怎么設(shè)置
使用STM32F030時(shí)沒(méi)使用內(nèi)部晶振怎么設(shè)置,使用內(nèi)部晶振時(shí)延時(shí)
發(fā)表于 03-07 08:13
測(cè)試STM32C031C6開發(fā)板的長(zhǎng)短按鍵,在按鍵中斷處理程序中使用HAL_Delay()延時(shí)函數(shù),程序則無(wú)法運(yùn)行,類似進(jìn)入了死循環(huán),于是則添加了延時(shí)
發(fā)表于 03-07 06:50
延時(shí)繼電器作為一種在電氣系統(tǒng)中廣泛應(yīng)用的控制元件,具有在電路中實(shí)現(xiàn)定時(shí)閉合或斷開控制的重要功能。通過(guò)引入延時(shí)功能,對(duì)電路系統(tǒng)的精確控制和管理,適應(yīng)不同的應(yīng)用場(chǎng)景和需求,提高生產(chǎn)效率、降低
發(fā)表于 02-07 16:09
?285次閱讀
現(xiàn)在要實(shí)現(xiàn)一個(gè)ns級(jí)的延時(shí)函數(shù),用nop指令已經(jīng)調(diào)試完成,然而問(wèn)題在于這個(gè)延時(shí)函數(shù)經(jīng)常被中斷,導(dǎo)致延時(shí)時(shí)間不可控,我在
發(fā)表于 06-26 06:50
不用中斷,就是單純一個(gè)用作延時(shí)函數(shù),寫了一個(gè)下午也沒(méi)搞明白,可能我理解出錯(cuò)了
void delay_us(int us)
{
timer_config_t delay
發(fā)表于 06-14 06:03
函數(shù)發(fā)生器,作為電子測(cè)試和測(cè)量領(lǐng)域的重要工具,其穩(wěn)定性和可靠性對(duì)于實(shí)驗(yàn)和測(cè)試結(jié)果的準(zhǔn)確性至關(guān)重要。然而,由于各種原因,函數(shù)發(fā)生器在使用過(guò)程中可能會(huì)遇到各種故障。本文將詳細(xì)介紹函數(shù)發(fā)生器的常見(jiàn)故障及其解決
發(fā)表于 05-15 11:45
?1224次閱讀
使用STM32F030時(shí),發(fā)現(xiàn)用wait函數(shù)的延時(shí)時(shí)間不對(duì),比正常速度快了6倍。在Mbed網(wǎng)站上發(fā)現(xiàn),這個(gè)問(wèn)題已經(jīng)被記錄下來(lái),從Mbed的102版開始就有這個(gè)問(wèn)題了。
發(fā)表于 05-11 08:33
自己寫了個(gè)延時(shí)函數(shù)
void ps_Delay_ms(uint32_t dly)
{
uint32_t i = 0;
uint32_t j = 0;
for (j=0;j
發(fā)表于 05-10 06:18
Go 沒(méi)有類,不過(guò)可以為結(jié)構(gòu)體類型定義方法。方法就是一類帶特殊的接收者參數(shù)的函數(shù)。方法接收者在它自己的參數(shù)列表內(nèi),位于 func 關(guān)鍵字和方法
發(fā)表于 04-23 16:21
?978次閱讀
開啟定時(shí)器TIM7,是為了寫延時(shí)函數(shù)HAL_Delay_us()。具體過(guò)程請(qǐng)移步此文:STM32的HAL庫(kù)實(shí)現(xiàn)自定義延時(shí)函數(shù)delay_us
發(fā)表于 03-26 14:19
?2410次閱讀
在stm32f1xx_ll_utils.c中提供的延時(shí)函數(shù),以下標(biāo)紅語(yǔ)句為什么要多加1呢?延時(shí)1ms不就變成2ms了嗎?
void LL_mDelay(uint32_t Delay)
發(fā)表于 03-26 06:08
我在使用STM32F4跑freertos的時(shí)候發(fā)現(xiàn)一旦使用osDelayUntil()函數(shù),就會(huì)死機(jī),但是用osDelay()函數(shù)就不會(huì),按理說(shuō)不是都可以用的嗎?有知道原因的嗎,謝謝!
發(fā)表于 03-22 07:56
使用的是STM32L0系列,準(zhǔn)備使用延時(shí)函數(shù)使PWM波形移相,現(xiàn)在延時(shí)函數(shù)不起作用
delay.c函數(shù)
發(fā)表于 03-21 06:23
回調(diào)函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個(gè)函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后被調(diào)用。回調(diào)函數(shù)通常用于事件處理、異步編程和處理各種操作系統(tǒng)和
發(fā)表于 03-12 11:46
?3352次閱讀
評(píng)論