您的位置 首页 编程

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

最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式。这…

最近有一个项目用到STM32,为了使PCB布线便利一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载选用SWD形式。这样在实际操作中做出一些总结(办法网上都有、这儿仅仅总结记载一下):

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功用的影响了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/276281.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部