L052函数内使用#if 0后程序运行异常

2019-07-14 15:23发布

    但是将延时函数直接顶替该函数后,功能又正常。     在该函数之前还有大约5ms的延时,将延时增加到30Ms后,功能又正常。

     不知道什么原因???
     各位大侠请支招哦。谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
dull20112011
1楼-- · 2019-07-15 18:22
LingMao 发表于 1970-1-1 08:00

本帖最后由 power568 于 2017-9-15 12:26 编辑
      是卡在Delay16(6000)的延时函数之内。       应该不是优化的问题,使用的是IAR,优化等级为Low。

void Delay16(uint16_t n)
{
        uint16_t tt;
        for(tt = 0;tt<n;tt++);
        for(tt = 0;tt<n;tt++);
        for(tt = 0;tt<n;tt++);
        for(tt = 0;tt<n;tt++);
        for(tt = 0;tt<n;tt++);
}
dull20112011
2楼-- · 2019-07-15 19:30
       仿真全速运行时,使用软件复位命令后,程序卡在函数内ResetSlaveMcu的延时函数中,暂停后单步跳出该函数又可以全速运行;但是全速运行时在该函数之后打断点有不会卡住...
frank201
3楼-- · 2019-07-16 01:01
 精彩回答 2  元偷偷看……
ElecFans王岑
4楼-- · 2019-07-16 03:35
楼上说的应该是对的。
dull20112011
5楼-- · 2019-07-16 04:38
frank201 发表于 2018-12-7 10:24
楼主感觉和我碰到一样的问题了,我之前发了帖子,叫stm32l051和cc1101低功耗问题。我调试低功耗发现,睡眠之前加个延时或者语句,会造成功耗在10uA正常,或者100uA功耗不对的情况。

那你的问题解决了吗...

一周热门 更多>