之前看某教程说,写入的时候只能按块写,但是实际使用当中发现并非如此,可以任意读写某一地址内的数据,非常简单的几句话就可以实现eeprom的读写操作,而且容量还比较大
分享一下代码:
eeprom使用前一定先初始化,两行代码搞定。此程序实现的是往特定地址内写入字节,并从特定地址读出字节,显示在LCD上
void Flash_eeprom_Init() //初始化
{
FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
FLASH_Unlock(FLASH_MEMTYPE_DATA);//解锁
}
void Flash_Test()
{
uchar k=0;
uchar buffer[15];
uchar value[15]="hello world";
for(k=0;k<15;k++)
{
FLASH_ProgramByte(FLASH_DATA_START_PHYSICAL_ADDRESS+k,value[k]);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);//一定要执行
}
for(k=0;k<15;k++)
{
buffer[k]=FLASH_ReadByte(FLASH_DATA_START_PHYSICAL_ADDRESS+k);
FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);//一定要执行
}
LCD_PutString(100,200,buffer,CCOLOR,BCOLOR);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
求解 这样是否可行?我看官方例程给的这个写法,再看看大家说的,我有点糊了~~
volatile __eeprom __no_init char eep_u8;
volatile __eeprom __no_init short eep_u16;
volatile __eeprom __no_init long eep_u32;
volatile __no_init char ram_u8;
volatile __no_init short ram_u16;
volatile __no_init long ram_u32;
void main( void )
{
eep_u8=123;
eep_u16=12345;
eep_u32=123456789;
ram_u8=eep_u8;
ram_u16=eep_u16;
ram_u32=eep_u32;
while(1);
}
一周热门 更多>