求助!一读取片内FLASH存储信息,结构体初始值就会被改变

2019-08-14 05:40发布

//定义的参数
#define FLASH_SAVE_ADDR  (105*0x400+0x08000000)
sizeof(FA.Content.Buff)大于60

//定义的结构体
typedef struct
{
  INT8U                              enable;     
  INT8U                             ringing;   
  INT32U                            delayms;   
  _64bit                        end;        
  TimeCallBack*          cb;     
}timer;
static timer aTimer[50];
//用到的函数 结构体数组初始化
void TIMER_Init(void)
{
  for(INT8U i=0;i<TIMER_NUM;i++)
  {
    aTimer[i].enable=0;
    aTimer[i].ringing=0;
    aTimer[i].delayms=0;
    aTimer[i].end=0;
    aTimer[i].cb=TIMER_Dummy;
  }
}

//用到的函数 半字节读取
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)FA.Content.Buff,sizeof(FA.Content.Buff));

//出现的问题:在主函数中如果先调用TIMER_Init()初始化结构体,
//后 调用STMFLASH_Read读取数据,就会改变aTimer[0]到aTimer[5]的结构体成员初始值
//先后顺序颠倒后就不会出问题

求助各位大神能知道什么原因吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。