GD32F303 片上FLASH无法写入数据
代码如下:#define WRITE_ADDR 0x0807F800
int main(void)
{
uint32_t buff = {1,2,3,4,5};
/* configure systick */
systick_config();
fmc_unlock();
fmc_page_erase(0x0807F800);
fmc_flag_clear(FMC_FLAG_BANK0_END | FMC_FLAG_BANK0_WPERR | FMC_FLAG_BANK0_PGERR );
fmc_word_program(WRITE_ADDR,0x88);
fmc_lock();
while(1)
{
// ST480_GetRawData();
DelayMs(1000);
}
} 仿真查看memory发现无数据写入,有没有遇到同样的问题?是不是我哪里没配置好 @版主大人 求指导 结贴了,写入的地址不对 楼主GD32F303 片上FLASH最后有一个片区地址是不是0xA000 0000 @版主大人 求指导 检查写入地址 FLASH写入前必须擦除对应地址的数据,通常以页或扇区为单位进行擦除。若直接覆盖写入,可能导致数据异常。 检查电压稳定性 在代码中实现地址对齐时,建议使用位操作(如address & ~0x7FF)确保对齐性,避免依赖十进制计算的近似结果。 在写入和擦除操作后,需检查返回值或状态标志位,对错误情况进行处理,避免程序继续执行导致数据错误。
页:
[1]