stm32 軟件精確延時非systick 非中斷
//精確延時函數(shù)調用wait
voidwait(unsigned long n)
{
do{
n--;
}while(n);
}
//精確延時函數(shù)
#defineSYSCLK 72 //指明CPU工作頻率為72MHz
#defineA 6 //一次循環(huán)所花的周期數(shù)
#defineB 3 //調用、初始化、返回總共所用的周期數(shù)
#definedelay_us(nus) wait(((nus)*(SYSCLK)-(B))/(A))
#definedelay_ms(nms) delay_us((nms)*1000)
#definedelay_s(ns) delay_ms((ns)*1000)
//使用方法:
//delay_us(0.4); //延時0.4us
//delay_ms(1456);//延時1.456s
//delay_s(21.4345);//延時21.4345秒
評論