fr8008操作内部flash,flash_erase和flash_write执行后,数据没有改变?



  • fr8008操作内部flash,flash_erase和flash_write执行后,数据没有改变?,是要在执行函数前需要有什么要求吗?
    //--------bsp flash init--------------
    //-------------------------------
    static void bsp_flash_init(void){
    /* init QSPI0 CLOCK /
    /
    qspi is used for internal flash, set its reference clock to 48MHz*/
    __SYSTEM_QSPI_CLK_SELECT_48M();
    /* enable flash, Write Status Register command use 0x01*/
    system_enable_internal_flash_q_read(0x01);
    /*
    set internal flash clock divider and mode
    0=/2; 1=/4; 2=/6; 3=/8; 4=/10; 5=/12; 6=/14; 7=/16; 8=/18
    /
    printf("SINGLE mode Read and Writer\r\n");
    flash_init_controller(FLASH_RD_TYPE_SINGLE,FLASH_WR_TYPE_SINGLE);
    system_set_internal_flash_clock_div(0);
    co_printf("---flash id:0x%X\r\n", flash_read_id());
    }
    void fr8008_flash_read(uint32_t addr, uint8_t
    buf, uint32_t size)
    {
    flash_read(addr, size, buf);
    }
    void fr8008_flash_write(uint32_t addr, uint8_t* buf, uint32_t size)
    {
    flash_write(addr, size, buf);
    }
    void fr8008_flash_erase(uint32_t addr, uint32_t num)
    {
    flash_erase(addr,1024*num);
    }