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
这个也不算坑吧,厂家的设计不同。 下载端口 默认是开启的。 保留 SWD 调试功能 通过使能AF时钟并配置AF寄存器,可以禁用JTAG/SWD功能 GPIO初始化时可能已错误地配置了JTAG引脚的功能。 需通过其他方式(如 Boot0 引脚 + 串口 ISP)恢复调试功能。 在禁用JTAG引脚后,如果需要进行调试,可以使用SWD接口进行调试。 禁用 JTAG 后,向 PB3/PB4 写入高低电平 通过禁用JTAG功能,可以将这些引脚配置为普通GPIO 在禁用JTAG/SWD功能后,相关的引脚可以用于其他GPIO复用功能。
页:
[1]