关于程序会在延时函数死循环

2019-07-20 23:36发布

程序莫名的会死在延时函数的死循环中,之前使用的延时函数并没有出现这种情况,想请教大家一下死在延时函数的do {}while;循环会是什么原因,网上只是说延时函数的实现方法但是并没有这方面经验可以借鉴,希望有这方面积累的能给予解答一下
[mw_shl_code=c,true]void delay_xms(u16 nms)
{                                     
        u32 temp;                  
        SysTick->LOAD=(u32)nms*fac_ms;//ʱ¼ä¼ÓÔØ(SysTick->LOADΪ24bit)
        SysTick->VAL =0x00;           //Çå¿Õ¼ÆÊýÆ÷
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;          //¿ªÊ¼µ¹Êý  
        do
        {
                temp=SysTick->CTRL;
        }
        while((temp&0x01)&&!(temp&(1<<16)));//&#181;&#200;&#180;&#253;&#202;±&#188;&#228;&#181;&#189;&#180;&#239;   
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //&#185;&#216;±&#213;&#188;&#198;&#202;&#253;&#198;÷
        SysTick->VAL =0X00;       //&#199;&#229;&#191;&#213;&#188;&#198;&#202;&#253;&#198;÷                      
} [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-21 05:30
 精彩回答 2  元偷偷看……
爱奔跑的IT
2楼-- · 2019-07-21 11:22
正点原子 发表于 2017-7-3 00:50
说明延时时间没到。。。直接下载到板子运行,看结果

换了一块板子就可以,不过具体原因还是没找到,
DAVIDl
3楼-- · 2019-07-21 17:01
爱奔跑的IT 发表于 2017-7-3 23:21
换了一块板子就可以,不过具体原因还是没找到,

这个问题解决了吗?我也遇到了这个问题
我了个去屁屁
4楼-- · 2019-07-21 20:22
我也遇到了 发现是没有初始化的原因

一周热门 更多>