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

由于STM32的引脚功能较多,在为了方便硬件的使用,常会使用复用,重映射的功能,这里主要提及的是SWD和JTAG端口的引脚对应出现的问题。为了使得TIM2能够重映射到PA15和PB3,所以得对TIM2进行重映射,但是这样是不够的,因为下载调试端口SWD默认就占用了该引脚,所以重映射无效,因此必须先启动时钟

void Relay_GPIO_Config(void)
{       
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE); 
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 
       AFIO->MAPR = 0x02000000;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;  
        /*ÉèÖÃÒý½ÅģʽΪͨÓÃÍÆÍìÊä³ö*/
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
        /*ÉèÖÃÒý½ÅËÙÂÊΪ50MHz */   
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
        /*µ÷Óÿ⺯Êý£¬³õʼ»¯GPIO*/
        GPIO_Init(GPIOA, &GPIO_InitStructure);  
        //GPIO_SetBits(GPIOA, GPIO_Pin_15);
}

出现的问题是:

DLL: V6.10i, compiled Oct 25 2016 19:31:51
Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Hardware: V7.00
S/N : 20090928
Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull

  • JLink Info: STM32 (connect): Can not attach to CPU. Trying connect under reset.
  • JLink Info: STM32 (connect): Can not attach to CPU. Trying connect under reset.
    ***JLink Error: STM32: Connecting to CPU via connect under reset failed.
    Error: Flash Download failed - Target DLL has been cancelled

1、按着板子上面的复位键不放,若没有按键,就用夹子短路复位电容,这样单片机将停止程序的运行;我的是工程板,RST端口接地就行了。
2. 这时候点击Keil的下载,下方的“Build Output”窗口便会开始滚动,一会之后会提示出错。直接关闭它,放开复位键。
3. 如果方法2 不行,就是弹出错误窗口时,点NO,然后再运行一秒,马上放开复位键,程序这时一般可以正常下载了,如果不行, 测试多几次

你可能感兴趣的:(stm32)