STM32的PA15、PB3、 PB4管脚作普通管脚的解决办法

  最近做了一个板子,使用的是SWD方式进行下载程序,仅仅使用到SWDIO(PA13) 和SWCLK(PA14)两个管脚。我将PA15(JTDI)和PB3(JTDO)管脚用于他用(用于点LED使用),发现无法将这两个管脚拉低,于是我做了一下工作:

(1)检查电路板上是否有虚焊,断路

(2)检查程序是否没有配置正确

(3)发现都没有问题,我尝试着把程序中的PB3配置成了PB4(JNTRST)管脚,然后使用万用表测试一下发现PB4仍然无法拉低(此时有点怀疑是不是stm32这几个管脚坏掉了)

(4)于是我又换了一个管脚PB8,程序拉低后,使用万用表测一下拉低了,然后使用跳线测试LED成功点亮。

我在网上搜到PA15,PB3,PB4这几个管脚默认功能不是普通管脚,需要进行重映射后,才能普通使用

解决办法:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//AFIO时钟必须开启
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

其中:GPIO_Remap_SWJ_JTAGDisable  改变管脚映射(失能JTAG功能)

除此之外还有:GPIO_Remap_SWJ_NoJTRST  : Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST        

                         GPIO_Remap_SWJ_Disable   : Full SWJ Disabled (JTAG-DP + SW-DP)

猜你喜欢

转载自www.cnblogs.com/darren-pty/p/10528658.html