在STM32中有一些引脚的主功能不是实现GPIO的功能,而是用作调试接口。就比如我们常用的ST-LINK下载器,就是通过SWD接口给STM32下载程序的。SWJ接口包括SWD和JTAG两种。
SWJ接口(F103为例)
串行线调试接口(SWD)
JTAG接口
串口下载:
BOOT模式
boot0 --> 1 boot1 --> 0
串口接线
TTL_RX --> PA9(TX) TTL_TX --> PA10(RX)
调用下列代码后,在初始化引脚就能把上述的SWJ接口的引脚,当GPIO使用。但是也会失去用ST-LINK调试下载的功能,得要生成hex文件,和切换boot的模式后,用串口一下载程序。在HAL库中好像只能把JTAG-DP和SW-DP都给禁止调,而不能单独禁止一个。
// 禁用JTAG-DP和SW-DP
__HAL_AFIO_REMAP_SWJ_DISABLE();
// 将JTDI功能映射到PB4引脚
//__HAL_AFIO_REMAP_JTDI_ENABLE();