STM8內(nèi)部EEPROM的使用
@eepromu8save[10]={5,4,3};//大括號(hào)內(nèi)為初始值,初始值只在仿真器仿真時(shí)才會(huì)起作用
u8*pSave=(u8*)&save[0];//對(duì)EEPROM數(shù)據(jù)區(qū)進(jìn)行寫操作時(shí)必須使用指針訪問
voidmain()
{
do
{
FLASH_Unlock(FLASH_MEMTYPE_DATA);
}while((FLASH->IAPSR&FLASH_IAPSR_DUL)==0);//等待DATAEEPROM區(qū)解鎖
*pSave=*pSave+1;
//save[0]=save[0]+1;//對(duì)EEPROM數(shù)據(jù)區(qū)進(jìn)行寫操作時(shí)不能使用直接訪問,僅可用地址間接訪問,原因:可以比較和上面一句的匯編代碼
while((FLASH->IAPSR&FLASH_IAPSR_EOP)==0);//等待數(shù)據(jù)寫入完成,本句是必須的,且必須放在寫EEPROM數(shù)據(jù)操作之后
}
網(wǎng)上找到的參考資料:
EEPROM是單片機(jī)應(yīng)用系統(tǒng)中經(jīng)常會(huì)用到的存儲(chǔ)器,它主要用來保存一些掉電后需要保持不變的數(shù)據(jù)。在以前的單片機(jī)系統(tǒng)中,通常都是在單片機(jī)外面再擴(kuò)充一個(gè)EEPROM芯片,這種方法除了增加成本外,也降低了可靠性。現(xiàn)在,很多單片機(jī)的公司都推出了集成有小容量EEPROM的單片機(jī),這樣就方便了使用,降低了成本,提高了可靠性。
STM8單片機(jī)芯片內(nèi)部也集成有EEPROM,容量從640字節(jié)到2K字節(jié)。最為特色的是,在STM8單片機(jī)中,對(duì)EEPROM的訪問就象常規(guī)的RAM一樣,非常方便。EEPROM的地址空間與內(nèi)存是統(tǒng)一編址的,地址從004000H開始,大小根據(jù)不同的芯片