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

本文详细介绍了在STM32单片机中遇到无法通过软件配置将特定管脚(PA15、PB3、PB4)拉低的问题及解决方案。通过检查电路、程序配置并尝试管脚重映射,最终发现需使用RCC_APB2PeriphClockCmd与GPIO_PinRemapConfig函数来启用AFIO时钟并禁用JTAG功能,从而实现对这些特殊管脚的普通使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

(4)于是我又换了一个管脚PB8,程序拉低后,使用万用表测一下拉低了,然后使用跳线测试LED成功点亮。(验证了STM32单片机并没有坏)

 

我在网上搜到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)

 

转载于:https://www.cnblogs.com/darren-pty/p/10528658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值