stm32内存地址里面的数莫名其妙改变

2019-07-14 18:01发布


请大家帮忙看一下     0X200001C3中的数据     在0X2000018A中   也会出现     但是0X2000018A是一个标志结构体     里面的数据只能等于0或者1

  一到有通讯的时候     revTempBuffer   字符串中的数据  就会传到    0X2000018A地址中  

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
60user127
1楼-- · 2019-07-15 14:14
嘻嘻爱哈哈 发表于 2018-9-6 20:51
1.检查引起异常的因素:指针?RAM全局变量?
2.修改标志结构体限定取值范围 typedef struct xx{uint32 flag_xxx:1;...}yy;来避开异常的产生。

RAM全局变量  没有溢出   
嘻嘻爱哈哈
2楼-- · 2019-07-15 14:52
先试一下方法2能否解决
60user127
3楼-- · 2019-07-15 17:40
嘻嘻爱哈哈 发表于 2018-9-6 21:41
先试一下方法2能否解决

不好用   
60user127
4楼-- · 2019-07-15 21:34
嘻嘻爱哈哈 发表于 2018-9-6 21:41
先试一下方法2能否解决

没解决。现在这个问题     为什么会把结构体去掉   改成全局变量就可以呢??
TOPCB
5楼-- · 2019-07-15 22:23
 精彩回答 2  元偷偷看……
嘻嘻爱哈哈
6楼-- · 2019-07-16 04:11
60user127 发表于 2018-9-6 21:53
没解决。现在这个问题     为什么会把结构体去掉   改成全局变量就可以呢??

按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct。
-------------------------------------------------------------------
我的理解是:结构体变量必定是一组连续的内存地址;单独的全局变量他们的地址不要求连续。

一周热门 更多>