stm32 软件精确延时非systick 非中断
//精确延时函数调用wait
voidwait(unsigned long n)
{
do{
n--;
}while(n);
}
//精确延时函数
#defineSYSCLK 72 //指明CPU工作频率为72MHz
#defineA 6 //一次循环所花的周期数
#defineB 3 //调用、初始化、返回总共所用的周期数
#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秒
评论