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