治標治本,徹底解決AVR單片機EEPROM數據丟失問題
}
}
if (CheckAllPage() == VALID)
{
return VALID;
}
return INVALID;
}
使用方法(三個備份):
1、定義一個數組:EEPROMData[EepromPageSize-2] ,數組定義為EepromPageSize-2是為了給每個備份留2個字節的校驗
2、要保存數據時,先把數據放到數組中,然后調用EepromWriteBlock()函數,把這個數組的數據寫進EEPROM,三個備份要寫三次。
3、寫完了之后,調用CheckWriteCRC()函數,該函數會計算出當前備份的CRC16檢驗數據并寫到EEPROM備份的尾部,有多少個備份就要調用多少次。
4、至此,數據的備份工作已經完成。
5、校驗數據(一般在復位后運行),執行CheckAllPage()函數,若通過了,則EEPROM數據沒有問題,否則要運行DataRecover()函數,對損壞的備份進行修復
------------------修改原因:修改變量的定義形式
評論