新闻中心

EEPW首页>嵌入式系统>设计应用> STM32的JTAG、SWD和串口下载的问题

STM32的JTAG、SWD和串口下载的问题

作者: 时间:2016-11-10 来源:网络 收藏
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式。这样在实际操作中做出一些总结(方法网上都有、这里只是总结记录一下):

本文引用地址://m.amcfsurvey.com/article/201611/317498.htm

1:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);

改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ完全禁用(JTAG+SW-DP)

2:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable,JTAG-DP禁用 + SW-DP使能

这里选择你要的模式,我是只用SWD不用JTAG

1
2
3
4
5
6
7
8
9
10
11
12
voidGPIOint(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}

STM32在程序中禁用JTAG功能后不能进行仿真会出现不能进行JTAG仿真的现象。

如果不小心仅用了JTAG导致下载不了程序了可以用以下方法解决:

1、设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。

将板子重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。

2、设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。

使用串口下载的软件Flash_Loader_Demonstrator 官网上有。注意串口下载只能用USART1也就是PA9和PA10引脚的那组。

3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。

直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。



关键词:STM32JTAGSWD串口下

评论


技术专区

关闭