第乙個延時函式:
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...