stm32 软件精确延时非systick 非中断
2014-12-23 13:41
225 查看
http://www.amobbs.com/thread-5513913-1-1.html
在阿莫上有位大神hcambridge推荐的软件精确延时:
//精确延时函数调用wait
void wait(unsigned long n)
{
do{
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秒
在阿莫上有位大神hcambridge推荐的软件精确延时:
//精确延时函数调用wait
void wait(unsigned long n)
{
do{
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精确延时(非中断,非ST库函数)
- STM32 SysTick 精确延时(非中断方式)
- stm32使用systick精确延时
- 利用STM32的SysTick设计精确延时函数
- STM32使用systick实现精确延时
- STM32中通过普通延时函数来精确延时
- stm32 设置systick中断抢先式优先级
- STM32中,systick具体延时时间计算
- STM32学习笔记——利用通用定时器TIM2进行精确延时
- STM32用定时器精确延时的方法
- 利用Keil精确实现软件延时
- STM32 SysTick 精准延时 简单分析
- STM32学习笔记(六) SysTick系统时钟滴答实验(stm32中断入门)
- 利用Keil调试精确实现软件延时
- STM32中关于检测按键的一些问题(关于采用传统的延时消抖方式和采用中断方式)
- stm32 设置systick中断抢先式优先级
- 使用STM32的systick定时器中断实现RTC工作过程出错
- STM32 systick做为系统时间使用(非简单延时)
- STM32的精确延时
- stm32 设置systick中断抢先式优先级