一个项目中用到了STM32中的PB3,使用的时候发现这个脚不受控制,查看手册发现这是个特殊功能引脚。PB3 和PB4 分别是JTAG的JTDO和NJTRST脚,在默认情况下,STM都是把他们复用为特殊功能脚,在没有关闭JTAG功能之前,这连个脚不受GPIO的ODR寄存器控制。
要把他们配置为普通的引脚,需要禁止他们的复用功能。库函数是
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
注意操作复用功能,则需要开启复用时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO,ENABLE);
在普通引脚配置的基础上加上这两句就可以当普通引脚一样使用了。
需要注意的地方:
GPIO_PinRemapConfig函数的参数GPIO_Remap_SWJ_JTAGDisable 表示的是禁止JTAG 使用SW—DP。此时还可以继续使用JLINK调试程序。但如果参数选择了GPIO_Remap_SWJ_Disable 将会完全关闭SWJ的功能,也不能再使用JLINK等工具调试了。如果完全禁止了SW+JTAG,需要再次开启的话,使用串口下载程序,并修改GPIO_PinRemapConfig的参数 串口下载的时候,需要把BOOT0置高 BOOT1置地 下载完成后把BOOT0置低。
|