有没有小伙伴遇到这种情况:在使用GD32F303的时候,想要将PA13~15以及PB3和PB4作为IO口来使用,却怎么也不成功呢?下面小编就来告诉大家原因。
我们先来看下GD32F303 datasheet中这几个引脚的定义:


原来,这几个引脚比较特殊,它们在默认情况下,是用于调试的JTAG/SWD口功能,想要当做普通IO口或者其他复用功能来使用需要进行“remap”。
那么如何进行remap呢?我们再来看下GD32F303 用户手册中的《GPIO和AFIO》章节中的JTAG/SWD 备用功能重映射介绍:


可以看到,remap有多种模式可以选择,比如将SWJ_CFG设置为“010”,那么就可以保留SWD功能,即PA13和PA14还可以用于调试,而PA15、PB3和PB4则被“释放”,从而可以当做普通IO或者其他复用功能引脚使用;若设置SWJ_CFG为“100”,那么PA13~PA15、PB3、PB4都可以当做普通IO口来使用,但注意,这个时候要想再用SWD模式去调试MCU会失败哦。
现在来教大家如何通过库函数实现JATG/SWD的remap功能。
通过用户手册我们可以看到SWJ_CFG【2:0】位于AFIO_PCF0中,所以必须要先打开AF时钟:

然后再使用gpio_pin_remap_config函数进行remap配置就可以了。所以完整的代码是:
调用该段代码后,小伙伴们就可以将这些特殊引脚配置为你想要的功能啦!
-
单片机
+关注
关注
6068文章
45032浏览量
652158 -
IO
+关注
关注
0文章
492浏览量
40694 -
嵌入式
+关注
关注
5158文章
19730浏览量
318628
发布评论请先 登录
STM32H750 PB3、PB4、PB5配置成SPI功能需要额外处理JTAG功能吗?

stm32特殊IO口PA13,PA14,PA15,PB3,PB4转普通
配置PB4和PB3输出电平一直是高
PB3 PB4请问如何当普通IO使用
AT32F403A PB3 PB4 PA15如何用作普通IO使用
PB3 PB4不能输出他所需要的电平状态原因
【GD32F303】星空派介绍
在KEIL5软件中使用STLINK仿真器仿真时出错怎么办
请问CH32F103 SPI1如何切换到PB3 PB4 PB5?
STM32单片机,STLINK的SW仿真时“no target connected”问题及处理

GD32F303固件库开发(13)----定时器TIM捕获PWM测量频率与占空比

【GD32F303红枫派开发板使用手册】第二讲 GPIO-流水灯实验

评论