So I have a buffer:
uint32_t buff[2];
buff[0] = 12;
buff[1] = 13;
...
I can write this to the flash memory with the method:
HAL_FLASH_Program(TYPEPROGRAM_WORD, (uint32_t)(startAddress+(i*4)), *buff)
The definition of HAL_FLASH_Program
is:
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
That works perfectly. Now is there a way I can store chars instead or ints?
You can use
HAL_FLASH_Program
withTYPEPROGRAM_BYTE
to write a single 1-byte char.If your data is a bit long (a struct, a string...), you can also write the bulk with
TYPEPROGRAM_WORD
, or evenTYPEPROGRAM_DOUBLEWORD
(8 bytes at a time), and then either complete with single bytes as needed or pad the excess with zeros. That would certainly be a bit faster, but maybe it's not significant for you.