发表于 2016-1-6 16:49:54

ST单次写入的是双字节型的,理论是写入一次后,这一位就不会被写入了。

yangsangelaile 发表于 2016-1-6 22:23:07

本帖最后由 yangsangelaile 于 2016-1-6 22:29 编辑

安 发表于 2016-1-6 16:49
ST单次写入的是双字节型的,理论是写入一次后,这一位就不会被写入了。
对于这个双字单元,我第一次写入0X0000 00FF,第二次再往这个地方写0x0000 FF FF 还是可以成功的,再写0x00FF FFFF 也是可以的,但是再写0xFFFF FFFF就会变成0xFFFF FF7F,就有点感觉逻辑错误的问题,应该是芯片内部的逻辑问题吧。写了段小代码,循环这么写不同的地址,写了几KB都是一样的结果

yangsangelaile 发表于 2016-1-6 22:24:31

yanhaijian 发表于 2016-1-6 16:47
你能想到FLASH的这种特性,并对这种特性进行利用还是很厉害的。

要被电能逼疯了

发表于 2016-1-7 09:04:39

理论同一个地址只能写入一次。

65536 发表于 2016-1-8 09:15:25

我有点不大懂啊,不是说写的话,只能由1变0吗,那你怎么实现的在同一位置写入0b 0001之后,再次写入0b 0011(不知道楼主是不是这个意思),但是这样操作的话是不是使第二位由0写成1了吗?

zcl201207 发表于 2016-1-8 21:40:33

学习ing。。。:)

yangsangelaile 发表于 2016-1-9 08:53:08

65536 发表于 2016-1-8 09:15
我有点不大懂啊,不是说写的话,只能由1变0吗,那你怎么实现的在同一位置写入0b 0001之后,再次写入0b 0011 ...

这个我是这样理解的,理论上flash写入的时候只能从1变0,但是你用仿真器看到的,是0变1,这个逻辑是反的,但是不影响我们判断嘛,估计是芯片内部逻辑方面的问题。在MSP430F系列里面,flash格式以后就是0XFF,写入就只能从1变0,这个stm32格式化以后全部是0X00,只能0变1,不知道这样表述懂我的意思没有。或者你吧前面的话,理解成,stm32格式户以后只能0变1.
在我的这个测试里面,stm32格式化后全部是0x00,所以我的写入方式是可以的,只是出现了不可理解的结果

发表于 2016-1-9 09:07:11

STM32格式化后也是全FF。这个可以用ISP软件擦除后,再读取出来看看。

wuzhujian 发表于 2016-1-9 11:27:05

18楼是对的。
可能LZ看错了。
另外,STM32的FLASH,如果写不进去,会在状态寄存器中置错误的,LZ仔细调试一下。

65536 发表于 2016-1-9 20:24:37

yangsangelaile 发表于 2016-1-9 08:53
这个我是这样理解的,理论上flash写入的时候只能从1变0,但是你用仿真器看到的,是0变1,这个逻辑是反的 ...

这个样子啊那我理解了我C8051系列的用的多一些,C8051擦除后就是0xFF还,没用过STM32的FLASH擦写。
页: 1 [2]
查看完整版本: 求助!stm32的flash这样用貌似有点问题