CH32V307 的内部Flash的擦除原理?

按CH32V30x的应用手册上的介绍,擦除后读出来的半字应该是0xe339,与平时用的Flash有所出入,平时的Flash擦除完后读出来都是0xFF。

image.png

在移植FlashDB过程中,发现始终移植不成功,如下图。

{HR$8OZJA_G6`1[JGHAN[AQ.png

FlashDB中包含了将含1位全部写0x00的操作(先写入0x42,后续更改写入0x00),而对于CH32V30x,好像并没有这种机制。

然后下面是我的问题:

1、是否有方式可以让CH32V30x擦除后的内容为0xFF,以兼容一种比较标准且通用的Flash数据库,如FlashDB;

2、擦除为0xe339,在写入一次后是否不再可以重复修改。

也即擦除后,写入0xFF00,再写入0x0000的操作是否可以


你好,

问题一:擦除后芯片读e339为芯片特性,无法改变,你也可也在你擦除后写入ff来兼容你所说的数据库。

问题二:flash再写入后当然可以再次修改



似乎对于连续写入,v203和v307好像从擦完的0xE339->0xFFFF->0xFAFA->0xAAAA->0x0000这样连续写没问题,但是v208我似乎遇到了写入可能失败的问题,第一次修改可以,后面的可能修改不成功。请问是不是v208的flash不太一样导致的


您好,V203、V208以及V30x系列FLASH以及相关操作都是一样的,若你遇到写入问题,可将可复现问题的例程发至我的邮箱(lzs@wch.cn),顺便具体描述一下你的问题,这边具体看一下。注意FLASH具有标准编程和快速编程两种编程方式,使用时注意不同的解锁方式和编程方式。


只有登录才能回复,可以选择微信账号登录