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