STM32 在代码中加禁用JTAG接口无法下载程序,如何恢复。

stm32F1的JTAG、SWJ作为普通引使用。禁用JTAG、SWJ。 stm32F1的JTAG、SWJ引,为PA13/PA14/PA15/PB3/PB4。 单片机复位后,默认功能为JTAG、SWJ。 而实际使用中,一般只使用 SWCLK、SWDIO这两个引做 Debug。其余的引可以空出来,重新定义为普通的 IO 来使用。 PA13/PA14/PA15/PB3/PB4 想要定义为 普通IO,需要进行一些额外的重定义配置。 1. 手册对JTAG、SWJ管的定义 2. 引重映射分为以下几种情况 #define GPIO_Remap_... 阅读详情

问题:在STM32中为了将来JTAG引脚作为普通IO口用,将禁用JTAG 启用SWD后,再编译后发现无法再下载进入编译器,显示找不到端口,如图:

  

解决方法:

1.修改boot位,用公母线连接将boot电位拉高置一,如图(只用看黄线位置,外边是高电压):

2.找一个新代码(切记不要再拿有禁用JTAG口的代码,用我下面这个也可以)(可省略)

#include "led.h"



void led_init (void)
{
	  
      GPIO_InitTypeDef GPIO_InitStructure; //定义结构体
	   //开启硬件时钟 PB5
	    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA,ENABLE); //开启APB中GPIOA、GPIOB硬件时钟 
//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 开启硬件时钟 PA5 
	
	    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //配置PB6、PB7、PB8 推挽输出模式
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      GPIO_Init(GPIOB, &GPIO_InitStructure);
	
			GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //配置GPIO模式
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
		
      GPIO_SetBits(GPIOA,GPIO_Pin_1);//控制端口寄存器输出电平
      GPIO_SetBits(GPIOB,GPIO_Pin_6);
			GPIO_SetBits(GPIOB,GPIO_Pin_7);
			GPIO_SetBits(GPIOB,GPIO_Pin_8);
			 
			 
}

3.编译新代码无错误后,一直按住复位键(我图中的白色按钮),在点击下载一瞬间,放开复位按钮,显示如下图,即可

记住!!下载程序一瞬间一定要松开复位键,当keil不在提示报错的时候,那么就大功告成了!

关于stm32jtag和sw模式 STM32单片机中的JTDO与JNTRST是JTAG复用,一般最好不用JTAG-DP调试端口,而是用SW-DP,只需要JTMS/SWDIO与JTCK/SWCLK。这样可以省下有限的IO资源。        但是stm32复位后,JTAG与SW默认同时开启的,即所有的JTAG端口均被系统保留,软件设置GPIO是不起作用的,所以导致JNTRST一直为高电平,JTDO一直为低电平,ST的文档里说明 阅读详情

相关推荐

STM32误禁SWD/JTAG导致程序无法下载?两种实用恢复方案详解

本文详解STM32误禁SWD/JTAG接口导致程序无法下载的两种实用恢复方案:Boot模式切换法和Keil联调复位法。通过操作步骤和原理解析,帮助开发者快速恢复调试接口功能,并提供了代码预防和硬件设计的最佳实践,避免SWD/JTAG被误禁用

pytorch8learner的博客 271

STM32禁用JTAG,并使用JTAG

STM32禁止JTAG

er131的博客 5650

ARM 代码烧录方案与原理详解 --- SWD/JTAG + Bootloader + OTA (ICP + ISP + IAP)

一、ICP(In Circuit Programing):可通过CPU的Debug Access Port 烧录代码,比如ARM 的SWD或JTAG; 二、ISP(In System Programing):可借助MCU厂商预置的Bootloader 实现通过板载UART或USB接口烧录代码,比如STM32的System memory可预置ISP代码; 三、IAP(In Applicating Programing):由开发者实现Bootloader功能,可提供代码烧录、差分升级、空中升级、一键恢复等功能。

流云 3万+

STM32F1,F4,L1系列禁止JTAG和SW引方法

STM32F1,F4,L1系列禁止JTAG和SW引方法

RyanLee90的博客 8669

stm32 程序禁用 jtag 问题

程序禁用jtag 如何释放 一般 jtag 接口需要占用较多的芯片 IO 口,所以在 IO 口较少的情况下需要舍弃 jtag 接口,使用程序jtag 接口禁用并复用为普通的 GPIO 口。当程序下载jtag 接口无法再用于 jtag 仿真或下载程序了。 但是想将 jtag 接口重新设置为 jtag 接口又该怎么办呢,因为 jtag 已经不能用于下载程序了,即使程序中删除了禁用 jtag 的配置部分程序。 对于这个问题可这样解决,因为决定 jtag 接口是专用仿真接口还是普通的 GP

zhbi98 的技术 Blogs 2945

STM32 HAL库禁用JTAG,使用PB3、PB4、PA15作为普通IO

STM32 HAL库禁用JTAG,使用PB3、PB4、PA15作为普通IO。

czy8787475的博客 1866

STM32 SWD/JTAG Communication Failure解决方案

但此时程序仍然在单片机中运行,也就是说禁用语句仍然生效,依然无法使用DAP下载程序,怎么办呢?除了CUBEMX的配置错误外,程序不正常的卡死也有可能导致无法通过DAP下载。如果你的配置没有问题,且没有类似的禁用调试的语句,就检查代码逻辑,看看有没有意外卡死在某个位置。将Connect改回Normal,会发现注释掉上述语句后,正常连接状态下可以下载程序了,问题完美解决。这种问题一般是因为CUBEMX生成代码时,没有配置调试器(No Debug)但我们看到魔术棒配置是没问题的,也是能识别到debugger的。

2301_78821692的博客 1502

STM32 JTAG/SWD禁用导致无法烧写

STM32JTAG/SWD禁用导致无法烧写 (2015-09-20 20:38:44) 标签: 电子 STM32 SWD禁用 分类: 电子 由于STM32的引功能较多,在为了方便硬件的使用,常会使用复用,重映射的功能,这里主要提及的是SWD和JTAG端口的引对应出现的问题。为了使得TIM2能够重映射到PA15和PB3,所以得对...

weixin_30617695的博客 6744

STM32禁用SW和JTAG调试后如何恢复烧录功能

本文介绍了使用STM32最小系统板的跳线帽将BOOT0置1后,再烧录正常程序恢复STM32的SWD 和JTAG调试功能的办法;除此之外,也介绍了如何使用STM32Cubeprogrammer擦除芯片来恢复STM32的SWD和JTAG调试功能。

Seedofking的博客 1768

STM32 JTAG调试

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

byhunpo的博客 5276

STM32F429,程序可以通过jtag下进去,但是无法运行。

调试STM32F429,程序可以通过jtag下进去,但是无法运行。随后将程序改成控制单个引的简单程序。发现其引虽然无法正常工作,但如果此将手按上去构成回路之后,可以看似正常的工作。于是就怀疑电源与地平面的问题。最后经过重重检验确保电源没有问题的之后,将目光集中到晶振上,最后发现,本是无源晶振的地方,错焊有源晶振,切换过后,一切顺利。 一下是整理的有缘晶振与无源晶振的一些资料 有源晶...

qq_28986985的博客 1717

使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

ST-LINK/V2是为评估、开发STM8系列和STM32系列MCU而设计的集在线仿真与下载为一体的开发工具。使用铝合金U盘外壳安装内部主板,携带方便,安全可靠;接口定义直接在外壳上标注,一目了然,方便实用;5V、3.3V同时对外提供,方便您驳接5V 和3.3V目标板;内部主板带有500mA自恢复保险丝,彻底保护您昂贵的电脑主板;红蓝双色LED指示灯,方便您时时观察ST-LINK V2的工作状态. USB转T...

优信电子的博客 2万+

stm32不小心把SWD和JTAG都给关了,程序下载不进去,解决办法

昨天手贱,不小心把STM32的SWD和JTAD接口都给关了,现在解决了,百度了一些帖子,大牛们说的很好,只是作为一个菜鸟,觉得有必要把步骤写的详细一点。所以赶紧发个帖子压压惊。 这就是昨天关掉这两个接口的两句程序:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关掉JTAG,不关SW GPIO_PinRemapConfig(GPIO

Ace's Blog 2万+

STM32F103的JTAG或SWD接口禁用导致无法下载程式解决办法

stm32jtag禁用 无法下载程式 的处理方法

SYUSYORIN的博客 2226

STM32的keil debug调试(JTAG/SW)

Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。意思就是STM32里边包括外设和内核,内核里边有一个调试模块,有这个模块就可以仿真调试STM32,这个模块可以在指令断点或数据断电处停止,这里的停止指的是内核停止,内核停止就可以查看内核的内部状态和系统的外部状态。内核的内部状态就是内核那些R0、R1、PC这些,外部状态就是外设了,例如寄存器。

weixin_59455852的博客 3121

GPIO使用(二)如何将调试接口配置成普通IO口及JTAG和SWD禁用解除

关于GPIO的复用。 STM32F10x系列及AT32F4xx的MCU复位后,PA13/14/15/ PB3/PB4默认配置为JTAG功能。那么为了充分利用芯片的I/O口资源,就会把这些端口设置为通用I/O口,意味着将这些引复用为普通I/O功能。以AT32F4xx系列为例。 在数据手册有以下介绍: 在用户手册里复用功能I/O章节和调试设置章节有关复用说明: 根据以上手册内容可知: 1、默认JTAG调试功能,那么PA13/PA14/PA15 /PB3/PB4都不能做普通I/O口使用; 2、关闭JTAG

weixin_44006573的博客 5501

STM32锁住,解开方法

1、按住单片机复位键不松开;2、同时下载程序3、弹出一个窗口,选择NO4、再重新下载程序,即可。

既有随处可栖的江湖,也有追风逐梦的骁勇! 2万+

stm32JTAG/SWD接口误设GPIO模式后无法调试

用户程序JTAG/SWD端口配置为普通GPIO后,

Tomhex的博客 583
上一篇: 解决vs2022社区版使用scantf出现报错问题
下一篇: python文件时定义pymysql无法识别
小趴菜在努力(加油)
博客等级 码龄3年 54粉丝 9原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值