Haizangwang 发表于 2025-6-11 22:03

GD32 GPIO失控的解决方案

本周接手了同事GD32的大坑项目,之前一直使用CUBEMX+IDE开发STM32,一换到MDK浑身难受,陆续踩了不少坑。今天这个坑来自于GD32的下载器配置机制。再MX开发32的时候下载端口默认是没有的,GD32的下载端口默认都是使能的。

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



目前的项目中使用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复用功能。
页: [1]
查看完整版本: GD32 GPIO失控的解决方案