void delay_xms(u16 nms)进入死循环

2019-07-20 07:07发布

程序跑死了,然后用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ê±&#188;&#228;μ&#189;′&#239;   
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //1&#216;±&#213;&#188;&#198;êy&#198;÷
        SysTick->VAL =0X00;                                       //&#199;&#229;&#191;&#213;&#188;&#198;êy&#198;÷                      
}

死在了do---while循环中。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
chaifuwu
1楼-- · 2019-07-20 07:46
没有初始化delay函数吧
ZHOUHAO123
2楼-- · 2019-07-20 10:34
 精彩回答 2  元偷偷看……
qiuzhicheng
3楼-- · 2019-07-20 10:50
之前好好的,说明是你后来加了程序才出现了这个问题,在你加的程序上找问题吧
把加的程序注释掉,如果没问题的话,就是新程序有问题了
ZHOUHAO123
4楼-- · 2019-07-20 14:06
 精彩回答 2  元偷偷看……
Psheng
5楼-- · 2019-07-20 15:23
 精彩回答 2  元偷偷看……
ZHOUHAO123
6楼-- · 2019-07-20 17:42
Psheng 发表于 2018-7-20 20:07
参数不能为0,注意一下

请问一什么参数,就是delay_ms(100);延迟函数没设置为0

一周热门 更多>