如何使用 C++ 将字符存储在闪存 STM32F4 HAL 中?

How can I store characters in flash memory STM32F4 HAL with C++?

所以我有一个缓冲区:

uint32_t buff[2];
buff[0] = 12;
buff[1] = 13;
...

我可以用以下方法将其写入闪存:

HAL_FLASH_Program(TYPEPROGRAM_WORD, (uint32_t)(startAddress+(i*4)), *buff)

HAL_FLASH_Program的定义是:

HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)

效果很好。现在有没有一种方法可以存储字符或整数?

您可以使用 HAL_FLASH_ProgramTYPEPROGRAM_BYTE 来写入单个 1 字节字符。

如果你的数据有点长(一个结构,一个字符串......),你也可以用TYPEPROGRAM_WORD,甚至TYPEPROGRAM_DOUBLEWORD(一次8个字节)写入批量, 然后根据需要用单个字节完成或用零填充多余部分。那肯定会快一点,但也许对你来说并不重要。