系统定时器的设置问题

2019-07-21 02:11发布

下面是stm32的系统延时函数 看了很长时间都没有看懂  其中temp是指向的CTRL中哪一个 ?还有就是while中的判断是怎么来的?
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;      

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。