程序里有一个全局变量,可以理解为油门的作用,STM32根据它的大小来给出四路PWM。今天碰到一个莫名其妙的BUG,其他程序都正常跑着,就是这个全局变量的值不知为何总会被自动清0,明明初始化成非0值的。另外,我可以通过串口改变这个变量的值的,但每次刚通过串口给它赋值,瞬间就被清0了。我是用那个变量来控制电机喽,现象就是每次改变下油门,电机动一下立马就不转了。。。我程序里绝对没有对这个变量清0过。最奇葩的是,程序没有重新下载,只是复位几次,又忽然恢复正常了。但再复位又可能不正常了。。。这真是活久见~~~难道RAM到寿命了?可是程序正常跑着啊,其他变量也没事,就这一个全局变量会有这样的问题,你们说有可能是什么原因?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
初步看,Throttle=(USART_2.USART_RX_BUF[1]<<8)+USART_2.USART_RX_BUF[2]; 如果数组是u8类型的话,这里<<8应该导致数据溢出了。
一周热门 更多>