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

发布者:翩翩轻舞最新更新时间:2016-07-30 来源: eefocus关键字:STM32  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
void GPIOint(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功能的影响了。

关键字:STM32  JTAG  SWD  串口下载 引用地址:STM32的JTAG、SWD和串口下载的问题

上一篇:STM32 TIM重映射
下一篇:STM32F407 外扩SRAM

推荐阅读最新更新时间:2024-03-16 15:02

STM32在IAR指定文件(函数)首地址
  有时候,我们会遇到一些情况,要把某些数组定义在某个固定的区域,或者指定某个函数的首地址。   例如,有两个文件,main.c和sendpc.c,要把sendpc.c放在0x08001200位置,把main.c放在0x08000800位置。   以IAR540为例,在stm32f10x_flash.icf文件里,加入以下两句:   place at address mem:0x08000800 { section .text object sendpc.o };   place at address mem:0x08001200 { section .text object main.o };   编译后可在map文件中查看
[单片机]
<font color='red'>STM32</font>在IAR指定文件(函数)首地址
stm32之keil开发环境搭建
本篇内含工程建立以及JLINK设置,内容借鉴了前人经验,在此感谢各位前人的贡献。 1 下载stm32F10x的官方库 http://www.st.com/web/en/catalog/tools/PF257890 2 新建工程 工程名设为stm32_demo,选择芯片型号为STM32F103B,如图, 因为下载的stm32库中有启动代码,所以这里选择 否 ,不拷贝启动代码。 在工程文件下,新建Startup 、Headers、User、Libraries、CMSIS、Lists、Output文件夹。 文件夹 用途 Startup 启动文件,Flash在16~32Kb小容量,64~128Kb中
[单片机]
<font color='red'>stm32</font>之keil开发环境搭建
STM32家族新成员—STM32WB双核无线芯片
STM32家族新成员—STM32WB双核无线芯片 2018年10月12日,意法半导体在北京召开媒体发布会,隆重发布并介绍了STM32系列的第12个新成员—STM32WB。STM32WB的发布对STM32来说有着重大的意义,正如意法半导体中国区微控制器事业部市场及应用总监曹锦东所说“未来整个产业的发展是面向物联网产业的,物联网产业里不能缺少无线的产品线,STM32产品更不能缺乏跟无线产品相关的IP,STM32WB的发布将会帮助STM32进入无线领域,并加强STM32在物联网市场的影响力。” 意法半导体中国微控制器事业部市场及应用总监 曹锦东 正在本次发布会中,意法半导体STM32超低功耗和网络微控制器市场经
[单片机]
<font color='red'>STM32</font>家族新成员—STM32WB双核无线芯片
STM32 通用定时器的输出PWM功能 学习笔记
首先来说,你要使用PWM模式你得先选择用哪个定时器来输出PWM吧!除了TIM6、TIM7这两个普通的定时器无法输出PWM外,其余的定时器都可以输出PWM,每个通用定时器可以输出4路PWM,高级定时器TIM1、TIM8每个可输出7路PWM。选好定时器及通道后,下一步就是要使能定时器的时钟。先贴代码,再对每条代码做详细分析。 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能 TIM_OCI
[单片机]
STM32内存分布学习
1.STM32内存分布 下图是一张stm32的内存映射图,其中代码区是从0x0800 0000开始的,他的结束地址是0x0800 0000加上实际芯片的flash大小,他的ram的起始地址是0x2000 0000,然后结束地址依然是加上芯片实际的ram大小。 2.单片机中RAM\ROM\FLASH区别 1.RAM(Random Access Memory) 特点: 1. 掉电丢失数据; 2. 随机存取; 分类: 静态RAM/(SRAM) :不需要刷新电路保持数据,贵快,cpu的一级二级缓存; 动态RAM/(DRAM):需要刷新电路保持数据,比SRAM慢,比任何ROM快,计算机内存; 2.ROM(Read Onl
[单片机]
基于STM32的超声波HC-SR04历程
HC-SR04基本工作原理: (1)采用IO口TRIG触发测距,给最少10us的高电平信呈。 (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回, 通过IO口ECHO输出一个高电平, 高电平持续的时间就是超声波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S))/2。 程序编写思路是:1、配置好使用到的GPIO以及定时器; 2、给模块TRIG端口发送大于10us的高电平信号,当收、收到ECHO回响信号是,打开定时器开始定时; 3、当回响信号消失,关闭定时器; 4、通过定时器定时时间来确定距离。 /*Systick延时函数 Systick 延时初始化*/ void SysTi
[单片机]
stm32复位电路设计
在官方芯片资料是这样介绍的,如下图所示: 图中复位源将最终作用于RESET 管脚,并在复位过程中保持低电平,就是说复位过程中巴mos管导通拉低,会有不少于20us的低电平状态,由此一来,当NRST的外接电路复位是高电平的话,就需要接限流电阻,比如说接下图的up监控模块(注:stm32内部也有看门狗): 7引脚在复位过程保持高电平,为了防止复位过程太大的电路灌入NRST,需要接R38,这样的电阻限流,保护NRST
[单片机]
<font color='red'>stm32</font>复位电路设计
STM32 USB设计 单片机程序篇
首先,我们来看看usb的工作过程。   当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端点描述(endpoint descriptor)等。这些信息是通过端点0(endpoint 0)传送到主机的。获取各种描述信息后,操作系统会为其配置相应的资源。这样主机就可以与设备之间进行通信了。   usb通讯有四种通讯方式控制(control)、中断(interrupt)、批量(bulk)和同步( sync
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved