如果你用GD32F130就应该用GD32F1X0的库,从你贴出来的函数里,使用的FLASH_Unlock();这个是ST的库,GD32F1X0的应该对应的是FMC_Unlock()。用ST的库跟GD是有点差异的,103的不同型号FLASH的BANK大小都不一样,(如_CL,_HD,_XD的BANK大小是2K),130系列固定是1K。另外,GD32的FLASH擦写时间跟ST相比会比较长。用STM32的库,在写完KEY序列后,需要读确认KEY已经生效,
如:while(!(FLASH->CR&0X200)); 或者加入两个NOP,如
__NOP();
__NOP();
在stm32f10x_flash.c中有几个函数需要这样改。
有问题可以找我交流和沟通。375880228@qq.com
|