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

2019-07-14 18:01发布


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

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
60user127
1楼-- · 2019-07-16 05:30
TOPCB 发表于 2018-9-6 22:07
你的结构体怎么定义的?使用的时候如何定义的?

typedef struct
{
uint8_t  Flag_Switch;
uint8_t  Flag_SwitchAnswer;
uint8_t  Flag_Waddr;
uint8_t  Flag_Wthistime;
uint8_t  Flag_Rstatus;
uint8_t  Flag_Raddr;
uint8_t  Flag_Rthistime;
uint8_t  Flag_Ropentime_random;
uint8_t  Flag_Heatcyclestart;//Flag_Apportioncyclestart
uint8_t  Flag_Heatcycleend;       
uint8_t  Flag_Apportioncycle_Wheat;
.
.
.
.
}Flag_InitTypeDef;

使用的时候   
if(.....)
Flag_InitStructure.Flag_Heatcycleend=0

if(Flag_InitStructure.Flag_Heatcycleend==0)
{
.
.
.
.
}
这种结构
60user127
2楼-- · 2019-07-16 10:13
嘻嘻爱哈哈 发表于 2018-9-6 22:12
按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct。
-------------------------------------------------------------------

本帖最后由 wxh0000mm 于 2014-11-19 14:56 编辑

我定义的RAM   我确定没有超出    我算过了    一共是8K     从0X20000000  到 0X20002000
Total RW  Size (RW Data + ZI Data)              1888 (   1.84kB)
TOPCB
3楼-- · 2019-07-16 10:55
Flag_InitStructure怎么定义的?是指针?
TOPCB
4楼-- · 2019-07-16 14:29
 精彩回答 2  元偷偷看……
60user127
5楼-- · 2019-07-16 16:00
TOPCB 发表于 2018-9-6 23:14
这里明显不是超出RAM了.而是被其他的内容冲掉了.

我调试的时候    感觉跟你说的特别像      一开始初始化为0    但是有数据之后     Flag_InitTypeDef结构体里面的内容    就会变成数据  
但是   指针还没有超出   接收BUFFER    没有乱指的现象
Flag_InitStructure的定义方式如下
Flag_InitTypeDef    Flag_InitStructure;
嘻嘻爱哈哈
6楼-- · 2019-07-16 19:43
本帖最后由 Dylan疾风闪电 于 2014-11-19 15:14 编辑

我说的是这样的,不知道是否正确。这种情况下,分配就会出现问题。

一周热门 更多>