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رռÆêyÆ÷
SysTick->VAL =0X00; //Çå¿Õ¼ÆêyÆ÷
}
这段代码中判断等待时间到语句是怎么实现的呢?这句不明白?求解答!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //判断等待时间到
temp就是systick_ctrl寄存器值,temp&0x01判断是否使能了systick,temp&(1<<16)判断COUNTFLAG,检查是否计时结束
一周热门 更多>