请教stm32中Systick定时器的问题,求高手回答。
时间:10-02
整理:3721RD
点击:
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的版子。
请各位高手各抒己见,谢谢!
{
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的版子。
请各位高手各抒己见,谢谢!
装载为0,脱裤子放屁,小编真是高人啊!
这个怎么讲呀 我是初学 还望分享一下经验
一般使用Systick定时器装载的值不是0,装载为0,在我看来就成了代码冗余,那于脱裤子放屁一样。
了解了 感谢小编分享