CH32V203 用官网读写内部Flash例程,出现乱码

这个例程的结果,跟预期不一致啊

image.png

您好,建议你可以先根据你的芯片型号配置一下工程的启动文件、宏定义以及ld文件,具体配置方式见附件。若配置完成还不行,可以告诉我你的芯片型号,我这边测试一下,然后提供你一个参考例程。

icon_pdf.gifCH32系列不同MCU工程配置.pdf



使用的芯片是CH32V203C8T6:配置如下

image.png

image.png


还需要怎么修改,我看配置都是对的,


我这边还是不行哎,还是再给我提供个例程吧。


您好,在主频超过100MHz时,操作FLASH时需注意:在进行非零等待区域FLASH和零等待区域FLASH、用户字读写以及厂商配置字和Boot区域读时,需做以下操作, 首先将HCLK进行2分频,FLASH操作完成后再恢复,保证FLASH操作是频率低于100Mhz。在将HCLK进行2分频后,需要将用到的函数重新初始化一下,具体操作见下图,这样打印就没问题了。附件为参考例程,可以参考一下。

icon_rar.gifCH32V203 C8T6-FLASH.zip

image.png

image.png


按照您的例程已经可以了,但是又出现新的问题。

这是例程运行的结果;

image.png

通过mounriver 烧写子的程序。

应该是全片擦除了。但是读取参数,参数存储再内部flash中。

返回的报文,红括号内的是内部flash读取的数据。

image.png

我的程序里面没有写入这个数据。

好像没有擦除内部flash。


您好,我们FLASH擦除成功后不是0xff,是0xe339,如下图。具体说明见应用手册FLASH章节。

CH32V307应用手册:/downloads/CH32FV2x_V3xRM_PDF.html 

image.png


我自己写了一个读写flash的程序,再该函数内报文显示是写入成功了,但是我在函数结束后再次检测的时候,显示的内容就变成擦写后的结果了

image.png

icon_rar.gifflash_comfig.zip



您好,可以检查在写入结束到再次检测的这个过程中是否涉及了解除读保护操作,是否有对FLASH进行上锁解锁操作,若涉及到解锁操作,FLASH就会被擦除。


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