在线时间6 小时
UID3077424
注册时间2014-11-24
NXP金币0
该用户从未签到
新手上路
- 积分
- 33
- 最后登录
- 2018-4-20
|
本帖最后由 lonely989 于 2018-1-5 16:08 编辑
大家好,我根据官方例程第16篇编写代码,用MK64FX512VLQ12用FlexNVM模拟EEPROM。调试时出现问题:写入FlexRAM中的数据,在系统再次上电后读不出来,没有达到EEPROM的断电存储功能。具体代码如下:
void EEPROM_Config(unsigned char data4,unsigned char data5)
{
FTFE_FCCOB0=FTFE_FCCOB0_CCOBn(0x80); //program partition command
FTFE_FCCOB1=0;
FTFE_FCCOB2=0;
FTFE_FCCOB3=0;
FTFE_FCCOB4=data4;
FTFE_FCCOB5=data5;
FTFE_FSTAT=FTFE_FSTAT_CCIF_MASK;
while(!(FTFE_FSTAT&FTFE_FSTAT_CCIF_MASK));
}
第一次烧录:
void regular()
{
static unsigned char i=0;
if(1s_flag) //1秒钟到了
{
if(i)
{
data=*(volatile long*)0x14000000;
}
else
{
*(volatile long*)0x14000000=0x5678; while(!(FTFE_FCNFG & FTFE_FCNFG_EEERDY_MASK)); i=1;
}
}
}
第二次烧录:
void regular()
{
data=*(volatile long*)0x14000000;
}
int main(void)
{
wdog_close();
EEPROM_Config(0x19,0x0c); //data4=00 01 1001,subsystem A=8 Byte,subsystem B=24 Byte,共32 Byte;data5=0000 1100,EEPROM backup=64kByte
…
while(1)
{
regular();
…
}
return1;
}
我第一次烧录的regular代码包括了一次写FlexRAM,之后读FlexRAM,可以读到我写入的数据
但是我对板子断电后,我将regular改为第二次烧录的regular代码,相当于只读,但是却读不到我断电之前写入的数据了
请问我如何能实现断电数据保存到MCU片内EEPROM的功能。
file:///C:/Users/Administrator/AppData/Roaming/Foxmail7/Temp-5180-20180105154927/Catch(01-05-15-49-38).jpg
最佳答案
第二次测试的时候,没必要重新配置EEPROM,你试试直接读取看看
|
|