STM8s(2) EEPROM的操作
扫描二维码
随时随地手机看文章
// 注意写入地址空间的范围以及最大值
// 想向eeprom中写入数据,必须先解锁eeprom空间
// 读取数据时不需要解锁,直接读取即可
// 解锁函数
void EEPROM_UnLock(void)
{
while(!FLASH_IAPSR_DUL) // 解锁成功标志
{
// 数据手册上是让先写 0x56, 0xae ,
// 但事实密钥顺序是按照这个 0xae , 0x56,
FLASH_DUKR = 0xAE;
FLASH_DUKR = 0x56;
}
}
// 上锁函数 -- 只是不能再向其中写入数据,读取数据可以在任何状态下读取
void EEPROM_Lock(void)
{
FLASH_IAPSR &= ~MASK_FLASH_IAPSR_DUL;
}
// 向指定地址写入数据
// address_temp -- 写入到第几号地址空间
// data_temp -- 数据内容
void EEPROM_Write_Address_Dat(unsigned int address_temp,unsigned char data_temp)
{
*(unsigned char *)(0x4000 + address_temp) = data_temp;
}
// 读指定地址的数据
// address_temp -- 读取的第几号地址空间
// 返回值就是读取数值
unsigned char EEPROM_Read_Address_Dat(unsigned int address_temp)
{
unsigned char data_temp = 0;
data_temp = *(unsigned char *)(0x4000 + address_temp);
return data_temp;
}