”变量的值被干扰改变“这种干扰的可能性大吗?

2020-01-10 19:40发布

问题的起因:有两块相同的板,STM32F103的,HEX程序是一样的,

一个接了变频器,一个是普通的电阻式温度传感器,运行的结果是,接了变频器的那块板运行一到二天就不通讯了,
象块砖一样,重启一下就OK。

但程序没有死,有看门狗设计,main程序中,控制了一个LED的闪烁,均正常,
串口收到信号,也能进中断。因为在串口中断中,会点亮一个LED,然后在一个100ms的定时中断中,这个LED会被关掉,这个LED的闪烁也正常。


接变频器板换过两次,问题依旧,项目在外地,一到二天出现一次,解决起来非常痛苦。想来想去,有没有这种可能性,比如某个值K1,
mail()
{
    K1=1;  
   while()
   {

  }
}

K1只是在起动初时赋值,也只有一次赋值,但经过长时间的运行,K1的值变成了其它数值,这种情况各位网友有无遇到过?谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
soga238
1楼-- · 2020-01-10 22:28
觉得不可能,莫非你的芯片在高辐射下
SUPER_CRJ
2楼-- · 2020-01-11 04:02
个人觉得是可能性小。应该是:程序一样,但是外部条件也不一样,导致BUG表现出来了。不过这个不常显示的BUG,应该是一处楼主怎么想都不会觉得有问题的地方出现的BUG,要不然,也不会这样问问题了。
是不是:K1是全局变量,在MAIN程序中有改变。且在中断中有改变?如果是这样的话,那么就是个BUG了。因为在MAIN中被改变的过程中,如果被中断打断且改变了这个值,在恢复堆栈操作的过程中,中断的改变等于被恢复无效。
EMC菜鸟
3楼-- · 2020-01-11 04:03
变量被干扰的可能性当然存在,否则现在为什么ST的芯片RAM都带校验呢?
随便摘录一个芯片的说明:“ 4 to 32 Kbytes of SRAM with HW parity”
leafstamen
4楼-- · 2020-01-11 09:35
 精彩回答 2  元偷偷看……
YZ_SQS
5楼-- · 2020-01-11 14:55
我遇到过这样的问题     是双向电源   带的直流电机   旁边有变频器   只要开机就通信很差,用串口工具看来一下 里面全是0XFF 有用的信息很少,最终导致串口堵死,后来把所有的COM,PE,GND都接在一块了 通信就很流畅了
zb05022005
6楼-- · 2020-01-11 18:08
同意5楼,感觉楼主再检查一下接收处理这部分

一周热门 更多>