|
本帖最后由 fhwbin 于 2025-1-4 20:28 编辑
从网上复制的代码,在 data = 0 时,下面代码的 while 会死循环写入闪存,这段代码我在单片机实机上运行了几分钟,请问这样会影响闪存的寿命吗?
- uint32_t data = 0;
- FLASH_Status FLASHStatus = FLASH_COMPLETE;
- uint32_t Address = 0x08008000;
- void flash_write(void)
- {
- FLASH_Unlock();
-
- FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
-
- FLASHStatus = FLASH_ErasePage(Address);
- // data = 0 时此处会死循环
- while (FLASHStatus == FLASH_COMPLETE)
- FLASHStatus = FLASH_ProgramWord(Address, data);
-
- FLASH_Lock();
- }
复制代码 |
|