2024-10-15 02:00 AM
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
2024-10-15 02:31 AM
Please see the Posting Tips for how to properly post source code: