我现在在用单片机做一个无线的角度测量显示,对其中一个静态全局变量,只在中断中修改其值为1或者0,别的子程序中都是调用,但是测试时发现它的值莫名其妙的变成了0x55,自己没有找到原因,希望有经验的帮忙分析一二,感谢!
单片机用的是STC12C5A60S2,编程用的KeilC51u4,用STC-ISP下载,如需其他信息可百度私信联系或Q118,1755,766
这个问题好像不能通过逐步运行找原因,因为是在中断接收到数据之后才会出现的。我在调试的时候不打开传感器,不发串口数据,这个变量就是正常的,打开之后这个变量就变成了0x55,感觉很奇怪。
追答你查看改变这个变量的程序,只看可以改变的地方
追问这个我查看过了,只有在某个按键中断里面,会将这个变量值改变,初始化这个值是0,改变的程序是a=1-a,别的就没有了。0x55这个东西串口数据里面倒是有,但是不知道为什么会赋给这个变量
问题依旧,不过提供了一个思路
追答借楼补充下:这个问题好像不能通过逐步运行找原因,因为是这个现象是在中断接收到数据之后才会出现的。我在调试的时候不打开传感器,不发串口数据,这个变量就是正常的,打开之后这个变量就变成了0x55,感觉很奇怪。
变量声明加了static ,不应该叫静态吗?
追答//tieba.baidu.com/i/sys/jump?un=%C1%D5%E6%A4SDBT" onclick="Stats.sendRequest('fr=tb0_forum&st_mod=pb&st_value=atlink');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%C1%D5%E6%A4SDBT" target="_blank" class="at">琳妞SDBT :全局变量都是静态变量