打印
[研电赛技术支持]

烧录GD32的多种方法以及解决串口芯片读/写保护等烧录失败问题

[复制链接]
105|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-12-2 13:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前情提要
最近在打一个传智杯的比赛 ,要求用到GD32芯片进行开发,由于之前只有stm32的开发经验,于是遇到了gd32烧录代码等各种问题,我手上的芯片型号是GD32f407VET6芯片 , 不过问题不大,应该都可以尝试,如果我的方法对你有效,不妨点一个关注AWA

烧录方法
首先我手上没有GD-LINK或者 J-Link ,基本上一直是用ST-LINK或者串口烧录下载的,所以本期围绕ST-LINK和串口烧录的方法进行方法讲解。

先说结论:
1:gd32可以通过flymcu串口下载工具进行烧录下载
2:gd32也可以通过stlink进行程序下载

Flymcu烧录方法
首先你需要下载一个Flymcu ,点进去翻到最底部就是Flymcu。打开mcu后,注意选择我下面所讲的细节部分
1:选择你的程序文件 .hex文件
2:选择STMISP选项 勾选 “校验” “编程后执行”
3:千万 “不能” 选择 “编程到FLASH时写选项字节” 选项
4:左下角底部选择 RTS的高电平复位,DTR高电平进入BootLoader
5:选择编程前重装文件
6:波特率选择bps:57600 “为什么不选择115200是因为有些时候太高了 反而会下载失败”
7:烧录前点一下 搜索串口 选择你的串口烧录器的端口



开始烧录:
1:点一下开始编程 然后一直按住boot0按钮 让boot0置1 然后按一下RST复位按钮 让芯片进入BootLoader模式 然后看右侧输出信息 是否接受79 1F的信息(代表成功进入BootLoader模式)



当下方进度条开始烧录的时候 就可以松开boot0按钮了

Debug问题
如果你不慎点到了编程到FLASH到写选项字节,或者说你出现了



这种烧录失败问题,包括
1:提示你有读保护/写保护,然后开始进入全片擦除 告诉你 会等很长时间
2:xxx 写入出错在0KB 进度0% 等等情况
反正就是死活用串口烧录下载不进去 那么基本上串口烧录本身已经无法解决问题了(但有时候过一会或者发生什么后就又可以了的玄学解决方案 这里并不展开讨论) 就可以参考下面使用ST-LINK烧录GD32芯片的方法了

其他问题:
1:一直接收到 7F 7F 7F 7F 7F …
解决方案:这种情况不用多想就是你RX和TX短接了 拿万用表测试一下(因为串口烧录的时候上位机PC向单片机发送的就是7F信息 但是你短接了 那么这个信息又被传输到了PC上位机 接受到7F 属于是自己发的信息自己接受了)
2:点击开始编程的时候 提示无法连接到端口xxxx
解决方案:这种情况就是你有个软件占用了这个串口烧录的端口 把占用这个端口的软件关闭或者断开连接 或者是你的端口选择错了 (要选择ch340这个字样的端口 才是串口烧录)
3:你想用FLYMCU或者其他的什么软件(比如GD32 ALL IN ONE Programmer )来擦除这个芯片的内容 来消除读保护 但是失败了 一直成功不了 芯片内的数据依然存在 等问题 那么可以参考下面的 通过ST-LINK来烧录或者进行全片擦除(亲测有效)
4:注意这边多说一点 如果你一直接收不到79 1F的信息 用万用表测试一下 你的boot0按钮按下是否导通 , 另外没有导通的情况 万用表"通断挡”连接在按钮的两端(注意红笔接按钮的连接3.3v一端) 会显示3.3v左右 如果不是这个值 可能是按钮损坏了 检查一下硬件,电路连接的问题 同理 RST也是 不过RST的按钮两端用通断挡测出来是"1.2v左右"(如果不是这个值就换一个按钮 我买的别人家的开发版都是这样的 自己的也是这样)
5:boot1引脚全程接地 置0 本篇没有他的用武之处
6:注意是单片机的RX引脚连接串口烧录器的TX ,单片机的TX引脚连接串口烧录器的RX (铸币问题,)
7:rst按钮和 BOOT0 的按钮都是要上拉一个10K的电阻

ST-LINK下载器来烧录gd32或者进行擦除
这个方法同样适用于你想用CubeIDE来烧录GD32芯片 但是奈何直接在ide里面烧录是不行的 ,可以通过把cubeide的烧录文件.hex 导出烧录
首先你要下载一个 STM32 ST-LINK Utility 最好不要安装在C盘
这个软件可以实现stlink 烧录.hex文件到 GD32芯片或者CW32(应该可以 我没试过)
或者对他们进行全片擦除 来消除读保护
方法跟stm32同理 把SWDIO 和SWCLK连接到GD32的对应引脚



然后会弹出弹出框 选择确定



然后输出框下面会弹出 Flash memory erased 信息就代表擦除成功了



同时 中间这部分地址信息都变成了FFFF 就是代表flash里面的内容都为空了

到这里 gd32里面的内容就擦除成功 同时读保护等问题也解决了 这时候你也可以回到上一步用串口烧录程序了 如果还是想用 stlink烧录继续看



之后就会提示这些信息 ,同时中间部分也发生了改变 代表修改的内容部分



然后就可以进行烧录了



出现这些信息后就代表已经烧录成功了



至此方法结束

Debug:
1:如果点连接芯片的时候 报错了 代表电脑没有检测到连接到STLINK 你需要先把stlink连接芯片然后连接到电脑 如果已经连接了 拔下来重新插入 或者换一个USB口子
2:安装这个软件的时候 要把他提示的驱动一并安装成功
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/2303_77827093/article/details/144065750

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1968

主题

15727

帖子

12

粉丝