如何使用 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_Program
和 TYPEPROGRAM_BYTE
来写入单个 1 字节字符。
如果你的数据有点长(一个结构,一个字符串......),你也可以用TYPEPROGRAM_WORD
,甚至TYPEPROGRAM_DOUBLEWORD
(一次8个字节)写入批量, 然后根据需要用单个字节完成或用零填充多余部分。那肯定会快一点,但也许对你来说并不重要。
所以我有一个缓冲区:
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_Program
和 TYPEPROGRAM_BYTE
来写入单个 1 字节字符。
如果你的数据有点长(一个结构,一个字符串......),你也可以用TYPEPROGRAM_WORD
,甚至TYPEPROGRAM_DOUBLEWORD
(一次8个字节)写入批量, 然后根据需要用单个字节完成或用零填充多余部分。那肯定会快一点,但也许对你来说并不重要。