GD32E103读写内部FLASH问题

[复制链接]
 楼主| kzero9 发表于 2022-4-11 17:28 | 显示全部楼层 |阅读模式
想用GD32E103读写内部FLASH,一直不成功。下面是程序。谁能看看哪有问题。
//写函数

static void fmc_program(uint32_t start_addr,uint32_t data)
{
    /* unlock the flash program/erase controller */
    fmc_unlock();

    uint32_t address = FMC_WRITE_START_ADDR+start_addr;
    /* program flash */

        fmc_word_program(address, data);

        fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_WPERR | FMC_FLAG_PGERR);


    /* lock the main FMC after the program operation */
    fmc_lock();
}



//擦除函数
static void fmc_erase_pages(void)
{
    /* unlock the flash program/erase controller */
    fmc_unlock();
    /* clear all pending flags */
    fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_WPERR | FMC_FLAG_PGERR);
    /* erase the flash pages */
    fmc_page_erase(FMC_WRITE_START_ADDR);
    fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_WPERR | FMC_FLAG_PGERR);
    /* lock the main FMC after the erase operation */
    fmc_lock();
}

//保存数据
int save_config_params(uint32_t start_addr,uint32_t data)
{
                if(data == NULL)
                                return -1;
               
                //擦除FLASH
                fmc_erase_pages();
                //保存配置数据到Flash中
                fmc_program(start_addr,data);
               
                return 0;
}


您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部