#include "Config.h"
u8 Eeprom_text = 0;
void EEPROM_write(unsigned char addr, unsigned char dat)
{
u8 *Ptr_SegAddr; //Segment pointer
Ptr_SegAddr = (u8 *)(EP_HEADER_ADDR+addr); //Initialize pointer
FLASH_DUKR=0xAE;
FLASH_DUKR=0x56;
while(!FLASH_IAPSR_DUL);//如果DUL沒有置位,說明解鎖不成功,最好加入超時判斷
asm("sim");//關閉中斷
*Ptr_SegAddr=dat; //指定地址,寫1 字節
while(!FLASH_IAPSR_EOP);//等待寫操作完成,最好加入超時判斷
asm("rim");//打開中斷
FLASH_IAPSR_DUL=0;//上鎖,對DATA EEPROM寫保護
////////////////////
}
//EEPROM指定地址讀出一個數據 addr:相對地址
unsigned char EEPROM_read(unsigned char addr)
{
uint16_t Data=0;
uint8_t *Ptr_SegAddr;
Ptr_SegAddr = (uint8_t *)(EP_HEADER_ADDR+addr); //Initialize pointer
Data=*Ptr_SegAddr;
return Data;
}
|