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

2020-01-10 19:40发布

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

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

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


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

  }
}

K1只是在起动初时赋值,也只有一次赋值,但经过长时间的运行,K1的值变成了其它数值,这种情况各位网友有无遇到过?谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
PICTURE
1楼-- · 2020-01-12 15:50
变频器工作时干扰较大,干扰到通讯部分
mtswz.213
2楼-- · 2020-01-12 20:40
 精彩回答 2  元偷偷看……
whatcanitbe
3楼-- · 2020-01-12 21:38
1.电气方面   变频器的电源输入端接上电源滤波器减轻干扰
2.软件方面,检查程序中代码抗干扰性
一般像这种程序没有跑飞的,一两天才出现的,很大可能是某段代码逻辑上不应该被中断的结果中断了。
lzg1987
4楼-- · 2020-01-13 02:12
溢出了吧!!!!!!!!!
gliet_su
5楼-- · 2020-01-13 03:15
LZ用了microlib可能会出这个问题,会改全局变量,特别是局部变量有数组的时候。可以把stack改大些试试。
xjmlfm1
6楼-- · 2020-01-13 04:54
肯定的说,这不是有没有可能的事,而是事实。
做过EMC就有体会了,程序中有些标志位,用8位的变量比用bit型变量,抗干扰能力要好得多。
同理,用8位变量的0x5a和0,比如1和0来表示,抗干扰能力也要好得多。

一周热门 更多>