stm32 軟體精確延時非systick 非中斷

2021-06-27 19:23:02 字數 610 閱讀 4230

在阿莫上有位大神hcambridge推薦的軟體精確延時: 

//精確延時函式呼叫wait

void  wait(unsigned long n)

while(n);

}//精確延時函式

#define  sysclk              72               //指明cpu工作頻率為72mhz

#define  a             6           //一次迴圈所花的週期數

#define  b             3           //呼叫、初始化、返回總共所用的週期數

#define  delay_us(nus)   wait(((nus)*(sysclk)-(b))/(a))

#define  delay_ms(nms)   delay_us((nms)*1000)

#define  delay_s(ns)     delay_ms((ns)*1000)

//使用方法:

//delay_us(0.4);   //延時0.4us

//delay_ms(1456);  //延時1.456s

//delay_s(21.4345);//延時21.4345秒

STM32精確延時

前面用 stm32 的gpio 模擬液晶驅動 時序時遇到乙個問題,就是怎樣產生一段較為精確的延時。通常產生一小段延時的方法就是利用乙個遞增或者遞減迴圈進行軟體延時。例 void delay void 我在使用 mplab ide 進行pic 微控制器的開發時,mplab 提供了乙個 watch 跑錶...

stm32延時一分鐘 STM32精確延時

stm32 精確延時的實現方法 前面用stm32 的gpio 模擬液晶驅動時序時遇到乙個問題,就是怎樣產生一段較為精確的延時。通常產生一小段延時的方法就是 利用乙個遞增或者遞減迴圈進行軟體延時。例 void delay void int i 0x0ff while i 我在使用 mplab ide進...

STM32延時不同寫法

對於stm32系列的延時函式有著不同的寫法,本章將給大家帶來最簡單的延時到最精準延時函式的各種寫法及原理。在stm32系列中要學會用好systick定時器,這很重要 原理 用c中累加或者累減的方法,到一定條件後就退出。好處 好寫,用for迴圈或者while迴圈,不用去理解各種有關底層硬體的暫存器。壞...