c/c++语言开发共享擦除后无法写入闪存

所以擦除后我不能直接写入内部闪存。 如果在写操作之前没有擦除操作,那么我可以。 任何想法为什么?

编程function返回“成功写入”值,但在查看内存时,不会写入任何数据。 这是代码:

uint32_t pageAddress = 0x08008000; uint16_t buffer = 0xAAAA; HAL_FLASH_Unlock(); FLASH_PageErase(pageAddress); HAL_FLASH_Program(TYPEPROGRAM_HALFWORD, pageAddress, buffer); HAL_FLASH_Lock(); 

我已经尝试在擦除和编程之间锁定内存,在这些操作之间造成延迟,这无济于事。

    问题是FLASH-> CR寄存器中的PER位在调用FLASH_PageErase()时设置,在其结束时不会被清除。 在闪存仍然未锁定时清除此位允许在此之后运行闪存上的其他操作。

    STM文档对此无话可说。

      以上就是c/c++开发分享擦除后无法写入闪存相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560134.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐