cancel
Showing results for 
Search instead for 
Did you mean: 

Couldn't write and read EEPROM on STM32L0538-Discovery

curiae
Associate II

Hello,

I  tried to EEPROM write/read test but it seems to not have written into EEPROM normally.

My defined functions corresponding to EEPROM are like following.

#define FLASH_USER_START_ADDR ((uint32_t)0x8008000)
#define FLASH_USER_END_ADDR ((uint32_t)0x800A000)

void eeprom_write_Word(uint32_t address, uint32_t value)
{
if(!IS_FLASH_DATA_ADDRESS(address))
{
return;
}
HAL_FLASHEx_DATAEEPROM_Unlock();
HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_WORD, address, value);
HAL_FLASHEx_DATAEEPROM_Lock();
}

void eeprom_read_Word(uint32_t address, uint32_t* value)
{
if(!IS_FLASH_DATA_ADDRESS(address))
{
return;
}
*value = *(__I uint32_t*)address;
}

And write/read lines in main are

eeprom_write_Word(FLASH_USER_START_ADDR, 1);
HAL_Delay(100);
eeprom_read_Word(FLASH_USER_START_ADDR, eeprom_buf);

As result buffer was empty.

How could I write and read normally?

Thanks

1 REPLY 1
Andrew Neil
Evangelist III