CH573 CH582 CH579外设FLASH例程讲解

发布时间 2023-09-20 16:17:45作者: WCH蓝牙应用分享

1.CH573和CH582的codeflash为448k,可用来存放程序和掉电保存的数据,dataflash为32k,可用来存放掉电保存的数据。

DataFlash 擦 写 读  接口函数:

    EEPROM_ERASE(0, EEPROM_BLOCK_SIZE);           //Data-Flash擦地址为相对地址,最小擦除单位256字节,擦除起始地址需按照256字节对齐
    EEPROM_WRITE(0, TestBuf, 500);                //Data-Flash写地址为相对地址,可单字节写
    EEPROM_READ(0, TestBuf, 500);                 //Data-Flash读地址为相对地址,可单字节读

CodeFlash 擦 写 读 接口函数:

    FLASH_ROM_ERASE(20 * 1024, 4096);            //Code-Flash擦地址为绝对地址,最小擦除单位4k字节,擦除起始地址需按照4k字节对齐
    FLASH_ROM_WRITE(20 * 1024, TestBuf, 128);    //Code-Flash写地址为绝对地址,可单字节写
    FLASH_ROM_READ(20 * 1024, TestBuf, 128);     //Code-Flash读地址为绝对地址,可单字节读

使用时注意点:

1.无论的CodeFlash写操作,还是DataFlash的写操作,其传入的源数据指针只支持在RAM中,而不支持在flash中,否则即使,写操作返回成功,仍然会写失败。

2.CodeFlash读操作是有硬件加扰的,也就是擦除后读不是全FF,而是四个固定字节的循环,DataFlash读操作没有硬件加扰。

3.CodeFlash和DataFlash都可以直接指针读数据(指针读经过硬件加扰)。

4.DataFlash写之前也是需要先擦再写的。