请教stm32中Systick定时器的问题,求高手回答。

2019-07-14 20:03发布

tica, SimSun, sans-serif">void delay_us(u32 i)
{
   u32 temp;
         SysTick->LOAD = 9*i;  //设置重装数值,72MHz时
         SysTick->CTRL = 0x01; //使能,减到0不发生中断
         SysTick->VAL  = 0;    //清零当前值计数器
        
   do
         {
            temp=SysTick->CTRL; //读取当前倒计时数值
         }while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到
         SysTick->CTRL = 0;
         SysTick->VAL  = 0;
}

这里微妙级的延时函数,i 是输入参数,我想问问,当i= 0的时候,这个延时程序该如何运行?
STM32F103ZE的版子。
请各位高手各抒己见,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
superassent
1楼-- · 2019-07-15 07:28
王栋春 发表于 2016-12-5 21:23
这个怎么讲呀  我是初学 还望分享一下经验

一般使用Systick定时器装载的值不是0,装载为0,在我看来就成了代码冗余,那于脱裤子放屁一样。
李春明
2楼-- · 2019-07-15 11:41
superassent 发表于 2016-12-5 21:31
一般使用Systick定时器装载的值不是0,装载为0,在我看来就成了代码冗余,那于脱裤子放屁一样。

了解了  感谢楼主分享              

一周热门 更多>