STM32 HAL庫學習 常使用的幾種延時方式

2021-08-27 20:26:53 字數 942 閱讀 1036

1   自帶的hal_delay 函式    毫秒級延遲

void hal_delay(__io uint32_t delay)

while((hal_gettick() - tickstart) < wait)

}

也可以配置為us延時,改變函式引數

配置方法:也可以配置為1us

// hal_rcc_gethclkfreq()/1000 1ms中斷一次,即hal_delay函式延時基準為1ms

// hal_rcc_gethclkfreq()/100000 10us中斷一次,即hal_delay函式延時基準為10us

// hal_rcc_gethclkfreq()/1000000 1us中斷一次,即hal_delay函式延時基準為1us

hal_systick_config(hal_rcc_gethclkfreq()/1000000); // 配置並啟動系統滴答定時器

2 中斷延時----利用定時器計時

int main(void)

}}void hal_tim_periodelapsedcallback(tim_handletypedef *htim)

3 優選方式------獲取系統時鐘計時,非阻塞式延時

void delay_ms(int32_t nms) 

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

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

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

}

謝謝csdn大佬的博文,學習了!原作位址請點我

STM32 HAL庫學習筆記

1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...

STM32 HAL庫學習筆記

1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...

stm32HAL庫學習 UART學習筆記

一 串列埠輸出列印重定向printf,如下 int fputc int ch,file f hal uart transmit huart1,temp,1,1000 return ch int fgetc file f 用作程式除錯輸出時,可以使用一組巨集定義,方便開發完成後關閉printf 除錯日...