首先取決於你的時鐘頻率選定為多少。以24位的SysTick定時器為例,在3.5版本的庫函式(該版本簡化了對該計時器的配置函式)中,呼叫函式 SystemInit(); 初始化SysTick計時器為STM32主時鐘的8分頻,假設主頻達到72MHz則此時計時器的頻率為9MHz,即1秒可 向下記數 9000000(9M)次。f=9MHz,所以週期為T=1/f,即1/9000000。再呼叫SysTick_Config(SystemCoreClock / X) (X表示一個數,填入多少就能獲得 1/X 秒數)delay中呼叫這些便可實現精確計時。例如 void Delay(vu32 count) { 全域性變數A = count };然後再在stm32f10x_it.c 檔案中的定義void SysTick_Handler(void){ if(全域性變數!=0) 全域性變數--;}就可以實現計時了。回答感覺夠詳細的話就採納吧~
首先取決於你的時鐘頻率選定為多少。以24位的SysTick定時器為例,在3.5版本的庫函式(該版本簡化了對該計時器的配置函式)中,呼叫函式 SystemInit(); 初始化SysTick計時器為STM32主時鐘的8分頻,假設主頻達到72MHz則此時計時器的頻率為9MHz,即1秒可 向下記數 9000000(9M)次。f=9MHz,所以週期為T=1/f,即1/9000000。再呼叫SysTick_Config(SystemCoreClock / X) (X表示一個數,填入多少就能獲得 1/X 秒數)delay中呼叫這些便可實現精確計時。例如 void Delay(vu32 count) { 全域性變數A = count };然後再在stm32f10x_it.c 檔案中的定義void SysTick_Handler(void){ if(全域性變數!=0) 全域性變數--;}就可以實現計時了。回答感覺夠詳細的話就採納吧~