求助原子哥,全局变量值莫名其妙被清0的问题

2019-08-17 02:45发布

程序里有一个全局变量,可以理解为油门的作用,STM32根据它的大小来给出四路PWM。今天碰到一个莫名其妙的BUG,其他程序都正常跑着,就是这个全局变量的值不知为何总会被自动清0,明明初始化成非0值的。另外,我可以通过串口改变这个变量的值的,但每次刚通过串口给它赋值,瞬间就被清0了。我是用那个变量来控制电机喽,现象就是每次改变下油门,电机动一下立马就不转了。。。我程序里绝对没有对这个变量清0过。最奇葩的是,程序没有重新下载,只是复位几次,又忽然恢复正常了。但再复位又可能不正常了。。。这真是活久见~~~难道RAM到寿命了?可是程序正常跑着啊,其他变量也没事,就这一个全局变量会有这样的问题,你们说有可能是什么原因?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
jermy_z
1楼-- · 2019-08-17 16:54
关注下这个问题    以前遇到过这种奇葩问题,最后delay一小会避开了这个问题
雪噬剑
2楼-- · 2019-08-17 21:24
 精彩回答 2  元偷偷看……
Rocks
3楼-- · 2019-08-18 02:01
每次刚通过串口给它赋值,瞬间就被清0了。

 Throttle=(USART_2.USART_RX_BUF[1]<<8)+USART_2.USART_RX_BUF[2];

你要不要確定一下USART_RX_BUF[1] USART_RX_BUF[2]是不是0值
我看你判斷只斷USART_RX_BUF[0]就進入了
雪噬剑
4楼-- · 2019-08-18 03:12
回复【10楼】Rocks:
---------------------------------
抓取了串口数据,没问题,而且我说瞬间被清0不是指被串口清了0,而是串口给他赋值后起了一两个控制周期的作用然后又莫名其妙归0了
q27488
5楼-- · 2019-08-18 09:03
ALT+F 全局搜索一下那个函数,都在什么地方用到,分析一下~
365mcu
6楼-- · 2019-08-18 14:03
回复【11楼】雪噬剑:
---------------------------------
数据地址找到,对地址设置断点,看这个地址的数据除了在你发送和赋值的时候使用还在其他什么地方被清除了。
基本上是要找到这个数据地址的前面地址是否定义了二维数组什么的,可能写超了。

一周热门 更多>