找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1000|回复: 1
收起左侧

单片机flash掉电存不了数据,麻烦指导一下哪里有问题

[复制链接]
ID:941265 发表于 2022-5-25 14:54 | 显示全部楼层 |阅读模式
各位大佬帮忙看下,谢谢大家

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
企业51hei截图_16534614248932.png
企业51hei截图_16534614407624.png
回复

使用道具 举报

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

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表