程序跑死了,然后用ST-Link进行调试,发现程序死在了delay_xms()中,请问这是怎么回事,之前好好的。void delay_xms(u16 nms){
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms; //ê±¼ä¼óÔØ(SysTick->LOADÎa24bit)
SysTick->VAL =0x00; //Çå¿Õ¼ÆêyÆ÷
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //¿aê¼μ1êy
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //μè′yê±¼äμ½′ï
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //1رռÆêyÆ÷
SysTick->VAL =0X00; //Çå¿Õ¼ÆêyÆ÷
}
死在了do---while循环中。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
把加的程序注释掉,如果没问题的话,就是新程序有问题了
一周热门 更多>