2024年3月13日发(作者:)

stm32有些管脚它上电默认的功能不是通用GPIO,比如JTAG与SWJ调试管脚,所

以,如果你想使用这几个管脚作为通用IO的话,就必须将JTAG与SWJ功能关闭,以及

开启AFIO时钟。

(AFIO 时钟未设置,

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE) 这句不会生效,也就是

要先设置时钟,才能配置相应端口,后变换了下顺序,先设

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);再调用

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE) 就完美可以了)

最近博主用STM32F103C8T6做了一个温度测控模块,用到PB3,PB4,PA15等引

脚控制外设。发现不管怎么配置,这三个引脚都不能置零。后来发现是包括这三个引脚在

内的PB3,PB4,PA13,PA14,PA15是特殊的IO口,用作JTAG/SWD仿真器的调试接

口(不能直接使用)。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,

PB4,PA13,PA14,PA15共同用于JTAG。这五个引脚的中英文描述如下图所示,图片

来源于STM32F1参考手册: