wxh0000mm 发表于 2014-11-19 13:06:42

Dylan疾风闪电 发表于 2014-11-19 10:09
先试一下方法2能否解决

不好用   

wxh0000mm 发表于 2014-11-19 14:04:18

Dylan疾风闪电 发表于 2014-11-19 10:09
先试一下方法2能否解决

没解决。现在这个问题   为什么会把结构体去掉   改成全局变量就可以呢??

发表于 2014-11-19 14:32:26

你的结构体怎么定义的?使用的时候如何定义的?

Dylan疾风闪电 发表于 2014-11-19 14:49:14

wxh0000mm 发表于 2014-11-19 14:04
没解决。现在这个问题   为什么会把结构体去掉   改成全局变量就可以呢?? ...
按照你现在的描述,应该还是内存不够引起的问题。
可能内存中没有足够的连续空间(块)来分配给这个struct。
-------------------------------------------------------------------
我的理解是:结构体变量必定是一组连续的内存地址;单独的全局变量他们的地址不要求连续。

wxh0000mm 发表于 2014-11-19 14:49:30

安 发表于 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:54:55

本帖最后由 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)

发表于 2014-11-19 14:59:21

Flag_InitStructure怎么定义的?是指针?

发表于 2014-11-19 15:00:33

这里明显不是超出RAM了.而是被其他的内容冲掉了.

wxh0000mm 发表于 2014-11-19 15:12:08

安 发表于 2014-11-19 15:00
这里明显不是超出RAM了.而是被其他的内容冲掉了.
我调试的时候    感觉跟你说的特别像      一开始初始化为0    但是有数据之后   Flag_InitTypeDef结构体里面的内容    就会变成数据
但是   指针还没有超出   接收BUFFER    没有乱指的现象
Flag_InitStructure的定义方式如下
Flag_InitTypeDef    Flag_InitStructure;

Dylan疾风闪电 发表于 2014-11-19 15:13:26

本帖最后由 Dylan疾风闪电 于 2014-11-19 15:14 编辑

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


页: 1 [2] 3 4
查看完整版本: stm32 内存地址里面的数莫名其妙改变!!!!