GD32超大容量FLASH,后512k写入数据失败的问题

[复制链接]
5422|19
 楼主| elego 发表于 2014-12-17 10:42 | 显示全部楼层 |阅读模式
单片机是GD32F103RGT6,FLASH容量是1M字节,前512K字节是按2k的页面组织,读写正确。
后512K是按4K的页面组织的,读写后512K字节的时候,总不成功
 楼主| elego 发表于 2014-12-17 10:42 | 显示全部楼层
程序是从STM32的例子迁移过来的,有什么地方要改动的吗
sunmeat 发表于 2014-12-18 10:33 | 显示全部楼层
elego 发表于 2014-12-17 10:42
程序是从STM32的例子迁移过来的,有什么地方要改动的吗

应该有个小改动,你看看GD32和STM32的差异性文档,GD官方也给出了操作FLASH的例程
锐鑫同创 发表于 2014-12-18 14:48 | 显示全部楼层
因为ST和GD的Flash都是不一样的,结合GD官方的Flash操作
奋斗吧。。。 发表于 2014-12-18 15:10 | 显示全部楼层
GD32大容量产品是指闪存存储器容量在256K至3M字节之间的STM32F101xx和STM32F103xx微控制器。前256K字节是按2k的页面组织,后257k~3M字节是按4k的页面组织.应该资料写错了。
pengxiao618 发表于 2014-12-19 14:58 | 显示全部楼层
奋斗吧。。。 发表于 2014-12-18 15:10
GD32大容量产品是指闪存存储器容量在256K至3M字节之间的STM32F101xx和STM32F103xx微控制器。前256K字节是按 ...

这个说法不太准确,前512K都是2K / PAGE
Simon21ic 发表于 2014-12-23 16:16 | 显示全部楼层
GD32F103ZKT6哪里有零售?
弄一些来玩玩,淘宝里找不到啊
wulongfu 发表于 2015-10-10 11:37 | 显示全部楼层
对于主存储闪存容量不少于768KB的GD32F10X_CL和GD32F10X_XD,使用了两片闪存;
前512KB容量在第一片闪存( bank1 )中,后续的容量在第二片闪存( bank2)中

相应的寄存器需要修改
shen520 发表于 2015-10-10 22:19 | 显示全部楼层
请查看 stm32f10x_flash.c 文件 , 就知道怎么回事了

/**
  * @brief  Unlocks the FLASH Program Erase Controller.
  * @NOTE   This function can be used for all STM32F10x devices.
  *         - For STM32F10X_XL devices this function unlocks Bank1 and Bank2.
  *         - For all other devices it unlocks Bank1 and it is equivalent
  *           to FLASH_UnlockBank1 function..
  * @param  None
  * @retval None
  */
void FLASH_Unlock(void)
{
  /* Authorize the FPEC of Bank1 Access */
  FLASH->KEYR = FLASH_KEY1;
  FLASH->KEYR = FLASH_KEY2;

#ifdef STM32F10X_XL
  /* Authorize the FPEC of Bank2 Access */
  FLASH->KEYR2 = FLASH_KEY1;
  FLASH->KEYR2 = FLASH_KEY2;
#endif /* STM32F10X_XL */
}
baimiaocun2015 发表于 2015-10-11 21:49 | 显示全部楼层
这个要先看擦写正确的不
zhangbo1985 发表于 2015-10-16 19:34 | 显示全部楼层
先看下读写时电压是否正确的
vivilzb1985 发表于 2015-10-21 23:56 | 显示全部楼层
在写入数据的时候一定要保障电压稳定的。
Houtz 发表于 2017-5-17 12:08 | 显示全部楼层
BNAK1和BANK2的解锁寄存器不一样,选用相对应型号的宏定义应该就可以了,
如果使用的是ST的库,全局宏定义STM32F10x_XL
lounnywu 发表于 2017-5-17 12:17 | 显示全部楼层
各位大咖,方案这块有用到硬件加密芯片,保护软件,防止抄板的,可以找我。QQ:937684930
chuntian2016 发表于 2017-5-24 20:11 | 显示全部楼层
锐鑫同创 发表于 2014-12-18 14:48
因为ST和GD的Flash都是不一样的,结合GD官方的Flash操作

这个也有可参考性的
shenmu2012 发表于 2017-5-26 20:50 | 显示全部楼层
这个再看下芯片资料的吧
zhangbo1985 发表于 2017-5-29 18:14 | 显示全部楼层
写入的时候先按页的擦除下的
zhangbo1985 发表于 2017-5-29 18:15 | 显示全部楼层
然后就先读取一个位置的看下数据是否是0xff的,若不是就是擦除不成功的。
zhangbo1985 发表于 2017-5-29 18:16 | 显示全部楼层
还有就是写数据的时候写完的随机的检查下的,看是否OK的
tongbu2015 发表于 2017-5-29 19:45 | 显示全部楼层
楼上的建议很好的,写之前先检查是否可以写操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

48

帖子

1

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