Dylan疾风闪电 发表于 2014-11-19 10:09
先试一下方法2能否解决
不好用
Dylan疾风闪电 发表于 2014-11-19 10:09
先试一下方法2能否解决
没解决。现在这个问题 为什么会把结构体去掉 改成全局变量就可以呢??
你的结构体怎么定义的?使用的时候如何定义的?
wxh0000mm 发表于 2014-11-19 14:04
没解决。现在这个问题 为什么会把结构体去掉 改成全局变量就可以呢?? ...
按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct。
-------------------------------------------------------------------
我的理解是:结构体变量必定是一组连续的内存地址;单独的全局变量他们的地址不要求连续。
安 发表于 2014-11-19 14:32
你的结构体怎么定义的?使用的时候如何定义的?
typedef struct
{
uint8_tFlag_Switch;
uint8_tFlag_SwitchAnswer;
uint8_tFlag_Waddr;
uint8_tFlag_Wthistime;
uint8_tFlag_Rstatus;
uint8_tFlag_Raddr;
uint8_tFlag_Rthistime;
uint8_tFlag_Ropentime_random;
uint8_tFlag_Heatcyclestart;//Flag_Apportioncyclestart
uint8_tFlag_Heatcycleend;
uint8_tFlag_Apportioncycle_Wheat;
.
.
.
.
}Flag_InitTypeDef;
使用的时候
if(.....)
Flag_InitStructure.Flag_Heatcycleend=0
if(Flag_InitStructure.Flag_Heatcycleend==0)
{
.
.
.
.
}
这种结构
本帖最后由 wxh0000mm 于 2014-11-19 14:56 编辑
Dylan疾风闪电 发表于 2014-11-19 14:49
按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct ...
我定义的RAM 我确定没有超出 我算过了 一共是8K 从0X20000000到 0X20002000
Total RWSize (RW Data + ZI Data) 1888 ( 1.84kB)
Flag_InitStructure怎么定义的?是指针?
这里明显不是超出RAM了.而是被其他的内容冲掉了.
安 发表于 2014-11-19 15:00
这里明显不是超出RAM了.而是被其他的内容冲掉了.
我调试的时候 感觉跟你说的特别像 一开始初始化为0 但是有数据之后 Flag_InitTypeDef结构体里面的内容 就会变成数据
但是 指针还没有超出 接收BUFFER 没有乱指的现象
Flag_InitStructure的定义方式如下
Flag_InitTypeDef Flag_InitStructure;
本帖最后由 Dylan疾风闪电 于 2014-11-19 15:14 编辑
我说的是这样的,不知道是否正确。这种情况下,分配就会出现问题。