STM32F103系列五个特殊引脚作为GPIO时的配置
对于STM32F103系列的单片机,有5个比较特殊的引脚,它们分别是PB3、PB4、PA13、PA14、PA15。
这5个引脚在默认状态下并不是用作GPIO功能的,而是用于JTAG/SWD仿真器的调试接口。
其中:
JTAG功能下的引脚对应情况如下:
PA13--JTMS--JTAG模式选择
PA14--JTCK--JTAG时钟
PA15--JTDI--数据输入
PB3---JTDO--数据输出
PB4---JNTRST--复位
SWD功能下的引脚对应情况如下:
PA13--SWDIO--数据的输入/输出
PA14--SWCLK--SWD时钟
PA15---------未使用
PB3----------跟踪时用作TRACESWO信号
PB4----------未使用
由于以上引脚默认功能不是GPIO功能,因此在使用这几个引脚作为GPIO功能时需要进行引脚的重映射。
关于以上引脚的重映射,可以分为三种情况:
1、GPIO_Remap_SWJ_JTAGDisable
用简洁的话来说,这种重映射情况就是把PB3、PB4、PA15这三个引脚用作普通GPIO,而把PA13和PA14这两个引脚用作SWD的调试功能。
2、GPIO_Remap_SWJ_Disable
这种情况是把这五个引脚全部用作普通GPIO,因此将不能再用JTAG/SWD仿真器进行调试,但可以使用ST-LINK。
3、GPIO_Remap_SWJ_NoJTRST
这种情况下仅仅把PB4这一个引脚作为普通GPIO,JTAG/SWD可以正常使用,但是JTAG没有复位功能。
了解了以上几个特殊引脚的重映射方式后,在使用这几个引脚为GPIO时可以按照以下流程进行配置:
1、打开对应的GPIO时钟以及AFIO引脚复用时钟。
例如,使用PB3/PB4引脚时配置如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
2、根据前面的三种不同的重映射方式,选择自己需要的重映射方式。
例如,当我们使用重映射方式一时,配置如下:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
3、正常初始化引脚的各种功能。