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

问题:在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不在提示报错的时候,那么就大功告成了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值