[单片机芯片] CH32V203的空FLASH读出来是0xE339E339

[复制链接]
1639|6
 楼主| imdx 发表于 2022-9-6 12:01 | 显示全部楼层 |阅读模式
通常FLASH擦除以后读出来都是0xFFFFFFFF,表示所有位均为1,各大MCU厂家都是这么做的。但是实测CH32V203的空FLASH读出来是0xE339E339。
CH32V上一代产品比如CH32V103的空FLASH读出来是0xFFFFFFFF,和其它厂家是一样的,为什么CH32V203的空FLASH读出来是0xE339E339呢?这个除了增加不兼容,似乎并没有什么好处,这么设计的目的是什么呢?
LIzs6 发表于 2022-9-6 14:07 | 显示全部楼层
读出来为0xe339e339好像是因为做了一层加密处理,可以保护代码
 楼主| imdx 发表于 2022-9-6 14:56 | 显示全部楼层
LIzs6 发表于 2022-9-6 14:07
读出来为0xe339e339好像是因为做了一层加密处理,可以保护代码

保护代码?没写的空闪存有什么可保护的。写过的闪存读出来和写入值一样。
鹿鼎计 发表于 2022-9-6 15:14 | 显示全部楼层
有没可能是出厂默认数据没有擦除?全擦除试试?
caigang13 发表于 2022-9-6 23:46 来自手机 | 显示全部楼层
出厂烧写过程序?
littlelida 发表于 2022-9-8 21:17 | 显示全部楼层
那么正确的值是什么呢
 楼主| imdx 发表于 2022-9-12 15:50 | 显示全部楼层
看了手册,手册提到CH32V203闪存擦除以后是0xE339E339,那么如果一个闪存页面擦除以后再编程写入0xE339E339,这时候闪存是写入还是擦除状态呢?其它擦除以后全部是0xFFFFFFFF的闪存,擦除以后再次写入0xFFFFFFFF,实际上还是未擦除状态。并且可以同一个地址多次编程写入。比如先编程0xFFFF0000,在编程0x0000FFFF,最后结果是0x00000000,符合闪存编程只能1变0的特性。
CH32V203的闪存数据为0xE339E339我实测并不能再次编程其它值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

904

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部