
我这个在我开发板上验证过的, 能读能写 这个代码一般人我不告诉他的 我用的是IAR 初使部分 我用的也是STM8L151K4T6 //-----------------------------EEPROM------------------------------------------------------ #define MASS_KEY1 0xae #define MASS_KEY2 0x56 #define EEP_BASE 0x1000 void EEPROM_Init(void) { FLASH->CR1 = 0x00; FLASH->CR2 = 0x00; FLASH->DUKR = MASS_KEY1; FLASH->DUKR = MASS_KEY2; //密钥使能 while(!(FLASH->IAPSR&0x08)) { ; /*等待写保护解锁*/ } } //写函数部分 void EEPROM_Write(u8 addr,u8 dat) { *((u8*)(addr + EEP_BASE)) = dat; while(!(FLASH->IAPSR&0x04)) { ; /*等待写完成*/ //这里加等写0x02会一直过不去,死机,改成0x04 OK } } //读函数部分 u8 EEPROM_Read(u8 addr) { return *((u8*)(EEP_BASE + addr)); } //--------------------------------------------------------------------------------- 写部分 3句完美搞定 //---------------------------------------------- EEPROM_Init();//FLASH解锁 EEPROM_Write(0X00,model);//0x00 是地址,MODE1是写的内容这是自定义变量哦 EEPROM_PROTECT_ENABLE();// 开启写保护 读部分,一句搞定 收工 //------------------------------------- model=EEPROM_Read(0X00);//MODE1 是自定义的变量哦 复制代码 |