#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;
}
|