GD32F350G8 fmc写不进数据到flash

[复制链接]
1773|8
 楼主| IFELSERETURN 发表于 2023-8-25 16:42 | 显示全部楼层 |阅读模式
本帖最后由 IFELSERETURN 于 2023-8-25 16:57 编辑

--write_update_flag是入口函数
void write_update_flag(uint32_t flag) {
        if(FMC_flash_write_word(0x80FC00, 0xaa))
                printf("FMC_flash_write_word success\n");
        else
                printf("FMC_flash_write_word error\n");

        FMC_flash_read_word(0x80FC00);
}

uint8_t FMC_flash_write_word(uint32_t address, uint32_t pData)
{
        fmc_state_enum FLASHStatus;
        uint32_t AddressTemp = 0;
        
        AddressTemp = address ;

        printf("FMC_flash_write_word write: %d \r\n",pData);
        fmc_unlock();
        fmc_page_erase(AddressTemp);
        fmc_flag_clear(FMC_FLAG_END | FMC_FLAG_WPERR | FMC_FLAG_PGERR);
        FLASHStatus = fmc_word_program(AddressTemp, pData);
        if (*((volatile uint32_t*)AddressTemp) != pData){
                printf("write error\n");
                return 0;
        }
        if (FLASHStatus != FMC_READY){
                printf("FLASHStatus != FMC_READY\n");
                return 0;
        }
        fmc_lock();
        return 1;
}
 楼主| IFELSERETURN 发表于 2023-8-25 16:43 | 显示全部楼层
读出来的数据一直是0
Addition 发表于 2023-8-25 16:48 | 显示全部楼层
官网的Firmware_Library有例程
 楼主| IFELSERETURN 发表于 2023-8-25 16:58 | 显示全部楼层
可以了
zhuhuis 发表于 2023-8-25 21:55 | 显示全部楼层
怎么解决的?
Bowclad 发表于 2023-9-5 23:53 | 显示全部楼层
这个有例程的吧
duo点 发表于 2023-9-20 15:36 | 显示全部楼层
请确保FMC配置正确,包括FMC地址、数据宽度、时序等参数。可以参考GD32F350G8的FMC配置文档进行检查和配置。
Undshing 发表于 2023-9-27 22:22 | 显示全部楼层
要先解锁
AloneKaven 发表于 2023-9-29 22:39 来自手机 | 显示全部楼层
怎么修改的啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

22

帖子

1

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