Question
STM32F401 HAL_FLASH_Program not working
Hi community..
I have the following code :
bool FLASH_WriteDoubleWord(uint32_t flashAddress, uint64_t Data)
{
FLASH_Unlock();
/*clear some flag*/
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGSERR );
//FLASH_Erase_Sector(2, 2);
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGSERR );
/* Program the user Flash area word by word */
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, (uint32_t)&flashAddress, Data) != HAL_OK)
{
FLASH_Lock();
return false;
}
FLASH_Lock();
return true;
}where
static uint32_t address_test = 0x08008000;
static uint64_t data_test = 0xAAAAAAAA;I don't understand why the erase part is working instead HAL_FLASH_Program it is not writing the data in the expected address.
Can you please tell me why in your opinion?
Thanks a lot.
Simone
