打印
[其他ST产品]

STM32Fxx JTAG/SWD复用功能重映射

[复制链接]
684|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jzzllv|  楼主 | 2022-11-26 22:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
问题描述:



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



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

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

使用特权

评论回复
沙发
jzzllv|  楼主 | 2022-11-26 22:38 | 只看该作者
STM32 的 PA13/PA14/PA15 与 PB3/PB4 主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,项目程序中用到这几个引脚作为了普通I/O口,但却并没有对其进行I/O模式配置初始化。因此对于不需要JTAG,而需要充分利用GPIO口时,就需要将JTAG关闭,使能SWD,此时PA15/PB3/PB4便可作为普通IO用了。

使用特权

评论回复
板凳
jzzllv|  楼主 | 2022-11-26 22:38 | 只看该作者
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);

使用特权

评论回复
地板
jzzllv|  楼主 | 2022-11-26 22:39 | 只看该作者
工程代码实例:

使用特权

评论回复
5
jzzllv|  楼主 | 2022-11-26 22:40 | 只看该作者
STM32F407的用法



      使用STM32F系列,会遇到将JTAG口复用为SPI1或直接用做普通IO。

针对于F1系列,需要先禁止使能 JTAG,然后将其复用为其他口或者普通IO。
针对F4系列,STM32F4库函数中,已经取消了GPIO_*PinRemapConfig()函数,对于复用功能使用GPIO*_PinAFConfig()函数了!
但是在GPIO_PinAFConfig()函数已经没有禁止JTAG/SW等选项了,而是复用到AF0~AF15线上,其中AF0是系统功能(也是复位初始功能)。STM32F4复位后JTAG对应的管脚的对应的功能就是AF0,(GPIO_AF_MCO=0) 所以这句可以不用:GPIO_PinAFConfig( ,,GPIO_AF_MCO);

直接配置GPIOx_MODER为输出,或输入模式即可,但是注意:STM32F4复位后JTAG对应的管脚的GPIOx_MODER值是0x02,即 复用功能!所以直接配置GPIOx_MODER为所需的模式就可以了!
其中调试接口就是系统功能,这样需要禁用JTAG功能只需把引脚复用到AF1~AF15中的一个就行了。

使用特权

评论回复
6
jzzllv|  楼主 | 2022-11-26 23:00 | 只看该作者
注:
1.直接复用就可使用相应的复用功能,不用想着失能JTAG了。
2.最好不要 将JTAG复用为普通IO。
3.PB3 PB4将其作为普通IO输出也可以,不过调试下载需要使用SWD下载调试。
4.如果将所有的JTAG口作为GPIO使用,将会导致无法找到JTAG和SW设备,板子下不进去程序。

使用特权

评论回复
7
tabmone| | 2023-3-4 12:54 | 只看该作者
引脚功能可以查看STM32参考手册的定时器复用功能重映射。

使用特权

评论回复
8
10299823| | 2023-3-5 10:29 | 只看该作者
重映射功能之后,原来的引脚还能继续进行复用功能么

使用特权

评论回复
9
Stahan| | 2023-3-5 19:42 | 只看该作者
可以从参考手册里查询复用功能

使用特权

评论回复
10
mnynt121| | 2023-3-7 14:03 | 只看该作者
引脚功能可以查看STM32参考手册的定时器复用功能重映射。

使用特权

评论回复
11
wangpe| | 2023-8-2 23:36 | 只看该作者
引脚功能可以查看STM32参考手册的定时器复用功能重映射。

使用特权

评论回复
12
langgq| | 2023-8-2 23:37 | 只看该作者
重映射功能之后,原来的引脚还能继续进行复用功能么

使用特权

评论回复
13
wangzsa| | 2023-8-2 23:38 | 只看该作者
可以从参考手册里查询复用功能

使用特权

评论回复
14
zhuww| | 2023-8-2 23:38 | 只看该作者
引脚功能可以查看STM32参考手册的定时器复用功能重映射。

使用特权

评论回复
15
zhanglli| | 2023-8-2 23:39 | 只看该作者
STM32F4复位后JTAG对应的管脚的GPIOx_MODER值是0x02,即 复用功能

使用特权

评论回复
16
Mowergy| | 2023-10-22 11:33 | 只看该作者
可以查看STM32参考手册的定时器复用功能重映射。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

49

帖子

0

粉丝