systick 判断时间到

2019-07-20 20:53发布

void delay_us(u32 nus)
{               
        u32 temp;                     
        SysTick->LOAD=nus*fac_us;                                 //ê±¼ä¼óÔØ                           
        SysTick->VAL=0x00;                                        //Çå¿Õ¼ÆêyÆ÷
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //¿aê¼μ1êy          
        do
        {
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));        //判断等待时间到
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //1&#216;±&#213;&#188;&#198;êy&#198;÷
        SysTick->VAL =0X00;                                       //&#199;&#229;&#191;&#213;&#188;&#198;êy&#198;÷
}
这段代码中判断等待时间到语句是怎么实现的呢?这句不明白?求解答!!!

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