MCU: STM8L051F3xx
EEPROM Address: 0x00 1000 ~ 0x00 10FF, 256 Bytes
解锁流程为:
1. 第一次向FLASH_DUKR写入密钥0xAE
2. 第二次向FLASH_DUKR写入密钥0x56
两次都写入正确后,写保护功能被关闭,可以对EEPROM区域进行写操作.
解锁成功后,FLASH_IAPSR_DUL 位会被置位,在写完密钥后,可以读取DUL位来判断有没有解锁成功.
特别注意:
在向EEPROM写数据时,单片机内部会产生高压对EEPROM写操作,
EEPROM Address: 0x00 1000 ~ 0x00 10FF, 256 Bytes
操作简明说明:
EEPROM在上电复位后是写保护的,
在向其中写入数据时,需要解锁,关闭写保护.解锁流程为:
1. 第一次向FLASH_DUKR写入密钥0xAE
2. 第二次向FLASH_DUKR写入密钥0x56
两次都写入正确后,写保护功能被关闭,可以对EEPROM区域进行写操作.
解锁成功后,FLASH_IAPSR_DUL 位会被置位,在写完密钥后,可以读取DUL位来判断有没有解锁成功.
特别注意:
在向EEPROM写数据时,单片机内部会产生高压对EEPROM写操作,
如果这个时候被中断打断,会造成单片机异常,所以写操作时,需要关闭总中断,防止意外发生.
涉及 ST 库文件: stm8l15x_flash.h, stm8l15x_flash.c
常用函数:
FLASH_Unlock( FLASH_MemType_Data );
FLASH_Lock( FLASH_MemType_Data );
uint8_t FLASH_ReadByte(uint32_t Address);
void FLASH_ProgramByte(uint32_t Address, uint8_t Data);
asm("rim"); //打开中断
asm("sim"); //关闭中断
解锁是否成功标志位: FLASH_IAPSR_DUL