你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助!stm32的flash这样用貌似有点问题

[复制链接]
yangsangelaile 提问时间:2016-1-6 12:53 /
阅读主题, 点击返回1楼
收藏 1 评论19 发布时间:2016-1-6 12:53
19个回答
回答时间: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擦写。
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版