在STM32单片机中这段代码会影响闪存的寿命吗?
本帖最后由 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();
} 俺不觉得会进入死循环,擦除之后第一次写入 0x00,后续再试图写入就会失败,不会循环下去的
页:
[1]