由于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);

}

 

出现的问题是:

 

JLink info:

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,然后再运行一秒,马上放开复位键,程序这时一般可以正常下载了,如果不行, 测试多几次

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐