对于CH32V203的FLASH操作的几个问题

对于CH32V203的FLASH操作的几个问题

  1. CH32V203C8T6的FLASH具体是多少KB?使用WCH-LinkUtility查询出来是224KB,通过程序对128KB位置进行读写也是正常。

  2. 对于FLASH的操作疑问,从手册上看到的编程如下截图:

    image.png

    标准编程最小擦除单元是4KB,我的应用场景是把产品的设置值存在FLASH里,设置值就只有15项这样,大概需要30个字节,而如果使用这种方式明显浪费了太多FLASH空间。

    快速编程最小擦除单元是256字节,这个符合需求,然后我的疑问就是写入数据时必须是一次性写入256字节吗?

    目前使用以下两个API

  3. FLASH_Status FLASH_ROM_ERASE(uint32_t StartAddr, uint32_t Length);

  4. FLASH_Status FLASH_ROM_WRITE(uint32_t StartAddr, uint32_t *pbuf, uint32_t Length);

你好,你可以使用256字节的擦除void FLASH_ErasePage_Fast(uint32_t Page_Address);使用单词2字节编程(标准编程)FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);。


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