stm32f4有重映射么_STM32Fxx JTAG/SWD复用功能重映射

本文介绍了在STM32F4开发中遇到的JTAG调试问题,当JTAG接口的PB3未正确配置时,可能导致程序死锁。解决方案包括禁用JTAG功能或将JTAG引脚配置为GPIO模式。STM32F4的库函数已取消了GPIO_PinRemapConfig(),需使用GPIOx_MODER进行配置。同时提醒开发者,禁用JTAG可能影响后续的仿真调试,建议使用SWD模式或ISP模式规避问题。
摘要由CSDN通过智能技术生成

问题描述:

在实验室调车过程中,遇到的一个问题:为了每次下载程序方便,队员们往往会把Jlink插在板子上,可是在调车过程中发现,有时程序会莫名死掉,而同样的程序,把Jlink拔了,却不会出现此问题。且设置PB3,PB4均为输出口,且输出高电平,用万用表测量,PB4为高,PB3不是高电平,在看MDK 中的寄存器值,PB3,PB4都是高啊?寄存器的值怎么和实际的值不一样了?

经过仔细研究找到了症结所在:

查看手册后发现在在复位后JTAG接口的PB3被设置为浮空(如果在该引脚悬空的情况下,读取该端口的电平是不确定的。)了,所以读回来的电平也是不确定的。

STM32 的PA13-PA14-PA15-PB3-PB4-PB5主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,项目程序中用到这几个引脚作为了普通I/O口,但却并没有对其进行I/O模式配置初始化。因此对于不需要JTAG,而需要充分利用GPIO口时,就需要将JTAG关闭,设置为GPIO模式。

STM32F103的用法

/*--JTAG-DP禁止,SW-DP允许, PA13, PA14用于调试仿真。PA15, PB3, PB4可用于SPI3--*/

AFIO->MAPR &= 0x00FFFFFF; //

AFIO->MAPR |= 0x02000000;

//关闭JTAG,保留SWD

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

工程代码实例ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值