STM32中3個延時函式使用方法

2022-09-23 07:36:09 字數 575 閱讀 2483

第乙個延時函式:

void delay(u16 num)

//延時nms

//注意nms的範圍

//systick->load為24位暫存器,所以,最大延時為:

//nms<=0xffffff*8*1000/sysclk

//sysclk單位為hz,nms單位為ms

//對72m條件下,nms<=1864

void delay_ms(u16 nms)

while(temp&0x01&&!(temp&(1<<16)));//等待時間到達

systick->ctrl=0x00; //關閉計數器

systick->val =0x00; //清空計數器

}//延時nus

//nus為要延時的us數.

void delay_us(u32 nus)

while(temp&0x01&&!(temp&(1<<16)));//等待時間到達

systick->ctrl=0x00; //關閉計數器

systick->val =0x00; //清空計數器

}

STM32三種延時函式

這個比較簡單,讓微控制器做一些無關緊要的工作來打發時間,經常用迴圈來實現,不過要做的比較精準還是要下一番功夫。下面的 是在網上搜到的,經測試延時比較精準。粗延時函式,微秒 void delay us u16 time 毫秒級的延時 void delay ms u16 time 2.systick 定...

STM32中如何使用printf 函式

stm32串列埠通訊中使用printf傳送資料配置方法 開發環境 keil rvmdk 在stm32串列埠通訊程式中使用printf傳送資料,非常的方便。可在剛開始使用的時候總是遇到問題,常見的是硬體訪真時無法進入main主函式,其實只要簡單的配置一下就可以了。下面就說一下使用printf需要做哪些...

stm32延時函式的三種寫法

我常用的延時函式有3種,一種是空迴圈,一種是使用systick中斷,還有一種是正點原子的延時。第一種就不做舉例,因為平時不常用。但是一些模組給的參考 的延時函式都會採用這樣的方法,直接用就好了,不做贅述。第二種方法是採用sistick中斷服務函式。中斷服務函式。引用定義的全域性變數。extern u...