所以我不能在擦除后直接写入内部闪存。如果在写操作之前没有擦除操作,那么我可以。关于为什么的任何想法?
编程函数返回“成功写入”值,但在查看内存时,没有写入数据。这是代码:
uint32_t pageAddress = 0x08008000;
uint16_t buffer = 0xAAAA;
HAL_FLASH_Unlock();
FLASH_PageErase(pageAddress);
HAL_FLASH_Program(TYPEPROGRAM_HALFWORD, pageAddress, buffer);
HAL_FLASH_Lock();
我尝试在擦除和编程之间锁定内存,在这些操作之间造成延迟,但没有帮助。