flash某位置已经写好数据,能否不用擦除继续覆盖写入数据

2019-07-14 18:33发布

如图所示。地址0x6200位置处,已经写入了0x00000002,能否再次在地址0x6200处再次写入另外一个数据,例如0x00000003.求教各位大神指点如何操作。我在测试时发现如果第一次写入的是0x00,可以再次写入别的数据,如果写入非0数,就不能再次写入了。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
fan266
2019-07-16 04:08
1.STM的一些芯片FLASH擦除后是0,而不是0xFF,具休看datasheet.
2.STM的一些芯片(测试过F407)支持位写入,即如果擦除后为0xFF,则可分几次将位置0,但不能置1.例如可以按顺序写入以下数据:0xFE  0xFC  0xF8  0xF0  0x70  0x30  0x10 0x00,如第一次就写入0x00,那后续不能改成其他数据了。如果擦除后分别写入0xF0  0x0F  则结果是0x00;
3.STM的一些芯片只支持字节写入,即写入第一次后不能更改了,除非擦除。

一周热门 更多>