标题: 单片机flash掉电存不了数据,麻烦指导一下哪里有问题 [打印本页]

作者: adad2    时间: 2022-5-25 14:54
标题: 单片机flash掉电存不了数据,麻烦指导一下哪里有问题
各位大佬帮忙看下,谢谢大家

void SaveAllPar(void)
{
      uint i;
          u8 tempd;
          i=EEPROM_BASE_ADDRESS;
          FSCMD=0;
          LOCK  = CMD_DATA_AREA_UNLOCK;
         for(i=EEPROM_BASE_ADDRESS;i<EEPROM_BASE_ADDRESS+32;i++)
         {
                  PTSH = (unsigned char)(i>>8);  
            PTSL = (unsigned char)i;  
            FSCMD = CMD_DATA_AREA_READ;
                tempd=FSDAT;
                FSCMD = 0;
            if( tempd== 0xFF)
        break;
    }
  if(i==EEPROM_BASE_ADDRESS+32)
        {
           PTSH = 0;  
           PTSL = 0;      
           FSCMD = CMD_DATA_AREA_ERASE_PAGE;
           i =EEPROM_BASE_ADDRESS;
        }
        
          FSCMD = 0;
      PTSH = (unsigned char)(i>>8);  
          PTSL = (unsigned char)i;
          FSCMD = CMD_DATA_AREA_WIRTE_PAGE;
          FSDAT = dim_data;
          FSDAT = up_flag;
      
            FSCMD = 0;
          LOCK  = CMD_FLASH_LOCK;
}
void LoadAllPar(void)
{
    uint i;
    u8 tempd;
    FSCMD = 0;
    LOCK  = CMD_DATA_AREA_UNLOCK;
  for(i=EEPROM_BASE_ADDRESS;i<EEPROM_BASE_ADDRESS+32;i++)
    {
                  PTSH = (unsigned char)(i>>8);
            PTSL = (unsigned char)i;  
            FSCMD = CMD_DATA_AREA_READ;
                tempd=FSDAT;
                FSCMD = 0;
            if(tempd==0xFF)
        break;
    }
  if(i==EEPROM_BASE_ADDRESS)
        {   
    dim_data=255;               
    up_flag=0;
        }
  else
        {
             i--;
             FSCMD = 0;
             PTSH =(unsigned char)(i>>8);   
             PTSL = (unsigned char)i;  
                 FSCMD = CMD_DATA_AREA_READ;  
             dim_data= FSDAT;
             up_flag=FSDAT;
         
             FSCMD = 0;
             LOCK  = CMD_FLASH_LOCK;                              
        }
        
}

企业51hei截图_16534614081025.png (112.29 KB, 下载次数: 71)

企业51hei截图_16534614081025.png

企业51hei截图_16534614248932.png (101.47 KB, 下载次数: 63)

企业51hei截图_16534614248932.png

企业51hei截图_16534614407624.png (37.58 KB, 下载次数: 78)

企业51hei截图_16534614407624.png

作者: dasSpieler    时间: 2022-5-25 22:31
大概率是数据没写进去,不是掉电的问题
写之前一定要先擦,确保写入的背景是空白的,所有数据都能正常写入;
擦、写完了之后要读一遍,确保真的写进去了;
有的单片机可能有flash加密,擦除完之后独到的可能不是全F(一般是安全类的芯片),但写入数据之后一定要读一遍。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1