写flash时为什么需要先擦除?

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:20:02
小生最近在使用STM32对FLASH读写时发现,如果不先进行擦除,写进去的数据是错误的,不知道为什么?谢谢~!

Flash 的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为 1 的过程,块内的所有字节变为 0xFF

我现在是写都还没写进去,写之前不是要进行擦除吗,老是擦除不成功,程序到等待是否超时那个地方就不知道跑到哪里去了,能否指教一下!!

可能与存取关系有关吧。。能覆盖一般就不要擦除

比原来的程序短,就不能全覆盖原程序,就会留下一些垃圾