求高手帮忙看一下,segment不能反复写入么?

2019-03-24 13:05发布

这是我写的一次写入flash  n个数据的子程序,但是只有在第一次写入ok,之后再进行写入的时候数据就不对了,不知道为什么,请高手帮忙看下!
void Task_WriteFlash(uint16_t Address_temp,uint16_t Datanum_temp)
{
  char_t *Flash_ptr;
  uint16_t i,Temp;
  
  Temp = Datanum_temp;
  Flash_ptr = (char_t *)Address_temp;
  _BIC_SR(GIE);
  
  while(FCTL3 & LOCK)
  {
    FCTL3 = FWKEY;
  }
  FCTL1 = FWKEY + WRT;
  while(FCTL3 & BUSY);
  for(i = 0u;i < Temp;i++)
  {
    while(FCTL3 & BUSY);
    *Flash_ptr++ = Data_Reg;
  }
  FCTL1 = FWKEY;  
  FCTL3 = FWKEY + LOCK;
  _BIS_SR(GIE);
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
wstt
2019-03-24 20:02
< 写之前需要擦除,两次写之间一定要擦除,如果连续两次以上的写可能破坏FLASH

一周热门 更多>

相关问题

    相关文章