[研电赛技术支持] GD32 GPIO失控的解决方案

[复制链接]
 楼主| Haizangwang 发表于 2025-6-11 22:03 | 显示全部楼层 |阅读模式
本周接手了同事GD32的大坑项目,之前一直使用CUBEMX+IDE开发STM32,一换到MDK浑身难受,陆续踩了不少坑。今天这个坑来自于GD32的下载器配置机制。再MX开发32的时候下载端口默认是没有的,GD32的下载端口默认都是使能的。

因此PB3/4及时被执行了GPIO低的操作,也会出现浮动的电压,这里实测是2.6V

1735868491c9334ee4.png

目前的项目中使用SWD下载程序,启动的功能引脚被JTAG占用因此无法实现功能,增加了以下两行代码实现了禁用JTAG:

//这两段代码写在初始化GPIO之前

rcu_periph_clock_enable(RCU_AF);

//禁用JTAG引脚功能,操作的是AF寄存器,所以要先使能AF时钟        

gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);**



————————————————

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

原文链接:https://blog.csdn.net/m0_61262333/article/details/147998303

chenqianqian 发表于 2025-6-11 22:14 来自手机 | 显示全部楼层
这个也不算坑吧,厂家的设计不同。
xiaoyaodz 发表于 2025-7-4 13:21 | 显示全部楼层
下载端口 默认是开启的。              
updownq 发表于 2025-7-4 18:48 | 显示全部楼层
保留 SWD 调试功能              
hudi008 发表于 2025-7-10 13:05 | 显示全部楼层
通过使能AF时钟并配置AF寄存器,可以禁用JTAG/SWD功能
fengm 发表于 2025-7-11 15:28 | 显示全部楼层
GPIO初始化时可能已错误地配置了JTAG引脚的功能。
kmzuaz 发表于 2025-7-12 12:14 | 显示全部楼层
需通过其他方式(如 Boot0 引脚 + 串口 ISP)恢复调试功能。
sanfuzi 发表于 2025-7-12 16:04 | 显示全部楼层
在禁用JTAG引脚后,如果需要进行调试,可以使用SWD接口进行调试。
bartonalfred 发表于 2025-7-12 21:47 | 显示全部楼层
禁用 JTAG 后,向 PB3/PB4 写入高低电平
pentruman 发表于 2025-7-12 22:23 | 显示全部楼层
通过禁用JTAG功能,可以将这些引脚配置为普通GPIO
lzbf 发表于 2025-7-12 23:00 | 显示全部楼层
在禁用JTAG/SWD功能后,相关的引脚可以用于其他GPIO复用功能。
eefas 发表于 2025-7-18 10:20 | 显示全部楼层
禁用 JTAG 并保留 SWD
pentruman 发表于 2025-7-18 10:55 | 显示全部楼层
需断电才能再次使用,所以需要关闭跟踪
i1mcu 发表于 2025-7-18 11:22 | 显示全部楼层
释放 PB3 和 PB4,供用户自由使用
kkzz 发表于 2025-7-18 12:02 | 显示全部楼层
可通过把BOOT0短接3.3V再烧写,之后用SWD烧录无需再短接
mnynt121 发表于 2025-7-18 12:51 | 显示全部楼层
复用功能优先级高于GPIO配置,导致禁用JTAG后仍需重置引脚状态。
biechedan 发表于 2025-7-18 13:41 | 显示全部楼层
遇到JTAG/SW接口被禁用导致烧录失败,通常是由于程序编写关闭了该接口或引脚被复用。
averyleigh 发表于 2025-7-18 14:04 | 显示全部楼层
        配置重映射前必须先使能 AF 时钟
sdlls 发表于 2025-7-18 14:46 | 显示全部楼层
在需要使用SWD接口下载程序的同时,又不想让JTAG占用引脚时非常有用。
hearstnorman323 发表于 2025-7-18 16:34 | 显示全部楼层
启动功能的引脚被JTAG占用,这会阻碍功能的实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

210

帖子

0

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