初级会员

- 积分
- 66
- 金钱
- 66
- 注册时间
- 2020-12-22
- 在线时间
- 17 小时
|
1金钱
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;
SysTick->VAL =0x00;
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
SysTick->VAL =0X00;
}
这个延迟函数中,在这一部分do
{temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); 会进入一个死循环,请问一下是为什么呢?感谢🙇‍!!!
|
|