[STM32F1]

代码运行错乱

[复制链接]
1408|40
手机看帖
扫描二维码
随时随地手机跟帖
pengf|  楼主 | 2021-11-5 22:15 | 显示全部楼层 |阅读模式
有一段代码在以前的设备中都运行正常,今天在一台设备也是类似的写法却出现问题,程序没有跑死,也没有复位,但第三代码无法被执行,third没被赋值为1,也就是说 if(count==50)first=1;没执行,导致 third=1;也没执行,难道count这个变量从49直接跳过50到51了?

使用特权

评论回复
zhenykun| | 2021-11-5 22:18 | 显示全部楼层

还有什么现象?能再详细描述下吗?

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:20 | 显示全部楼层
count的值为101,second这个变量一直在累加,说明程序正常运行,百思不得其解

使用特权

评论回复
zhanghqi| | 2021-11-5 22:22 | 显示全部楼层
供电不稳定

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:24 | 显示全部楼层
我也尝试瞬断供电也模拟出这种情况,要说电压过低MCU也会复位啊,但它又没有复位

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:26 | 显示全部楼层
我的程序开启了低电压检测,但在中断里只是保存一些不相关的数据而已,为何count累加时会跳过50这个值呢?

使用特权

评论回复
dengdc| | 2021-11-5 22:29 | 显示全部楼层
同样的写法在别的设备上

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:33 | 显示全部楼层
没问题,用的都是一样的板子

使用特权

评论回复
huangchui| | 2021-11-5 22:35 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:39 | 显示全部楼层

u8 count,first,second,third;
int main(void)
{
   count=0;
   first=0;
   second=0;
   third=0;
   while(1)
   {
       if(count==50)first=1;
       if(count>100)
       {
            second+=1;
       }
       else count++;
      //第三段代码
       if(first==1)
       {
           third=1;
       }
       ......
   }
}

使用特权

评论回复
juventus9554| | 2021-11-5 22:40 | 显示全部楼层
count在其它地方有改变吧

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:44 | 显示全部楼层
count只在一个地方累加

使用特权

评论回复
heweibig| | 2021-11-5 22:44 | 显示全部楼层
你可以考虑把count的定义放在main函数里试试,说不定有效果

使用特权

评论回复
jlyuan| | 2021-11-5 22:46 | 显示全部楼层
随便弄段代码就让人家解释?

使用特权

评论回复
stly| | 2021-11-5 22:48 | 显示全部楼层
这个问题应该是整个系统问题,需要看完整的工程

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:50 | 显示全部楼层
整个工程放上来,谁有那时间看啊,我把示例放上来就是让大家看得明白又不费时间,count这个变量就是在一个文件里定义的全局变量,而且其它文件没有用到这个变量,这个变量也没有在任何中断里调用过

使用特权

评论回复
dengdc| | 2021-11-5 22:52 | 显示全部楼层
增加一些调试信息看看吧,比如在count++那里把count值打印出来,观察一下count值的变化过程

使用特权

评论回复
pengf|  楼主 | 2021-11-5 22:59 | 显示全部楼层
关键不是经常会这样,只是在某一块机器偶尔会出现这种情况

使用特权

评论回复
pengf|  楼主 | 2021-11-5 23:02 | 显示全部楼层
怀疑是供电不稳导致,但不明白为什么程序又没有复位只是异常

使用特权

评论回复
dengdc| | 2021-11-5 23:03 | 显示全部楼层
但愿你这里描述的跟你的真实问题是一致的。

确认该变量有无可能被其它地方改动。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝