Question
stm32f0 help with flash, to read and write + hal libraries
Posted on September 22, 2015 at 22:29
Hi all, I wonder if anyone knows how to read and write to the flash stm32f0, using hal libraries ?. What I hold, it is to store some values in real time, and when you restart the device, are present (such as EEPROM of the pics, and I know what are the differences between flash and EEPROM). Basically I read that in order to write, you have to unlock with:
HAL_FLASH_Unlock (void);Then, you have to delete, either by page, or if all with:FLASH_EraseInitTypeDef erase_pages;erase_pages.PageAddress = 0x08000000;erase_pages.NbPages = 1;erase_pages.TypeErase = TYPEERASE_PAGES;uint32_t * Error;// To write this done BEFOREHAL_FLASH_Unlock ();HAL_FLASHEx_Erase (& erase_pages, error);HAL_FLASH_Lock ();// WRITE ONLY AFTER AN ERASE PAGEHAL_FLASH_Unlock (); HAL_FLASH_Program (TYPEPROGRAM_HALFWORD, 0x08000000, Data_config [0]);HAL_FLASH_Lock ();// READData_config [0] = * ((uint16_t *) 0x08000000); // Read flash memory at address 0x08000000From here, it stays stuck in:HAL_FLASHEx_Erase (& erase_pages, error);I know the flash memory starts at: 0x08000000, and only occupy one page to try to record a value, switch off the device, read, and verify that indeed the recorded data is left.I guess I'm pounding of the code, for that reason, don´t advance, i tell to you that I do not use bootloader.Greetings, and if someone could give me a guide, they are grateful enough.