目标:我想要使用M0518 ic来记录一些数据,这些数据在掉电之后不会丢失。重新上电后,还能获取到之前记录的数据。
解决之道:
void RecordData(int nData); 实现数据的记录
void ReadData(int *p_nData);实现数据的获取
头文件RecordRead.h
#ifndef __RECORD_READ_H_H_H
#define __RECORD_READ_H_H_H
#include <stdio.h>
#include "M0518.h"
#define FMC_ADDR_DATA 0x00100000UL //0x00100004UL //0x00100008UL
void RecordData(int nData);
void ReadData(int *p_nData);
#endif
实现文件RecordRead.c
#include "RecordRead.h"
void RecordData(int nData)
{
uint32_t u32Data;
SYS_UnlockReg();
FMC_Open();
FMC_EnableLDUpdate();
FMC_Erase(FMC_LDROM_BASE); //Erase all , 512 bytes space.
u32Data = nData; // Data
FMC_Write(FMC_ADDR_DATA, u32Data); //record it
FMC_DisableLDUpdate();
FMC_Close();
SYS_LockReg();
}
void ReadData(int *p_nData)
{
SYS_UnlockReg();
FMC_Open();
*p_nData = FMC_Read(FMC_ADDR_DATA);
//printf("nData = %d.\n", *p_nData);
FMC_Close();
SYS_LockReg();
}
---- The End.