在线时间61 小时
UID3091481
注册时间2015-1-12
NXP金币25
TA的每日心情 | 无聊 2021-5-27 14:51 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 298
- 最后登录
- 2025-7-3
|
本帖最后由 烟雨梦 于 2018-5-8 12:57 编辑
需要存储20个字节,先擦除然后写,在读取出来验证,但是读出来的数据全是0XFF,程序也参考了
“kexx_drv_lib\src\projects\KE02\EEPROM_demo”,帮忙看下哪里有问题,代码如下:
#define EEPROM_ADDR_START 0x10000000
uint8_t fact_data[20];
void EEPROM_INIT(void)
{
uint8_t temp[20];
uint8_t i;
FLASH_Init(BUS_CLK_HZ);
DisableInterrupts;
temp[0] = *((uint8_t *)(EEPROM_ADDR_START));
if(temp[0]!=0xAB)
{
for(i=0;i<5;i++)
{
EEPROM_EraseSector(i*2 + EEPROM_ADDR_START);
}
temp[0]=0xAB;
for(i=1;i<20;i++)
{
temp【i】 = 0x55;
}
EEPROM_Program(EEPROM_ADDR_START,&temp[0],20);
}
for(i=0;i<20;i++)
{
fact_data【i】= *((uint8_t *)(EEPROM_ADDR_START+i));
}
EnableInterrupts;
}
最佳答案
本帖最后由 原来的你 于 2018-5-8 12:53 编辑
烟雨梦 发表于 2018-5-8 12:33
初始化了,并且在操作EEPROM前DisableInterrupts
代码修改如下:fact_data【i】= *((uint8_t *)(EEPROM_ADDR_START+i));即可 ...
|
|