大奖娱乐官方网站_大奖娱乐老虎机_在线【大奖娱乐平台】

STM32的调试方式、更新程序、仿真以及补救措施

2018-09-13来源: eefocus 关键字:STM32  调试方式  更新程序  仿真

1. STM32调试方式选择
STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。

由此我们可以知道:
如果要使用JTAG调试功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;
而如果我们关闭JTAG功能,但是开启SWD调试功能,那么PB3,PB4,PA15都可以当作普通IO来使用了;


ST官方3.5的库有提供关闭调试功能的两个接口:

1.1 关闭所有的JTAG和SWD调试功能
慎用,一旦执行该命令,程序运行后将不能通过JTAG或SWD方法进行烧写和下载,补救措施见文末。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB " RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
执行上面语句后,PB3,PB4,PA13,PA14,PA15都可以当作普通iO来使用,此时不能通过J-Link进行调试了;

1.2 仅关闭JTAG调试功能
该方法的好处是,解放了JTAG功能占用的引脚,但是SWD调试功能依旧可以使用。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
执行上面语句后,PB3,PB4,PA15都可以当作普通iO来使用,且可以通过SWD进行调试。


2. 关闭JTAG和SWD调试方式后如何更新程序以及仿真
2.1 关闭JTAG如何更新程序
关闭JTAG调试功能以后,STM32不再支持在线仿真,且更新程序也需要通过一定操作才可以完成。此方法在开发阶段慎用!
建议程序启动时延时3-5秒后再关闭JTAG调试模式,如此,单片机断电复位后立即点击烧写按钮也是可以进行程序烧录的。

2.2 关闭JTAG及SWD调试功能后的补救措施
补救措施一:
设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。
将开发板断电后重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。

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

补救措施三:
如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。


关键字:STM32  调试方式  更新程序  仿真

编辑:什么鱼 引用地址:/mcu/2018/ic-news091341299.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32中的timers中断处理函数
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32 中空编码器tim4初始化

#include "stm32f10x.h"#include "encode.h"#include "misc.h"#include "nvic.h"#include "sys.h" #include "delay.h"void TIM4_Mode_Config(void){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;TIM_ICInitTypeDef
发表于 2018-09-12

STM32步进电机加减速

在匀速在减速停止#include "stm32f10x.h"#include "math.h"#include "pwm.h" #define _ACC_DEC_MAX_COUNT 1500#define _STEP_INT 8000 #define mortor_cw(x) x ? GPIO_SetBits(GPIOB,GPIO_Pin_0):GPIO_ResetBits(GPIOB,GPIO_Pin_0)void stm32_init(void);void delay_ms(u32 i);void once_pwm(void); int
发表于 2018-09-12

STM32F0 Slave I2C配置

ructure);}要注意的地方是:GPIO_PinAFConfig((GPIO_TypeDef*)GPIOA,GPIO_PinSource9,GPIO_AF_4);之前看例子是用的 GPIO_AF_1,I2C死活没反应,后来找厂家提供了一个可以跑的例子比较寄存器,发现此地方要用GPIO_AF_4,就正常工作了。(2)中断处理接口void I2C1_IRQHandler(void){   __IO uint32_t I2CFlagStatus = 0x00000000;   uint8_t data;      I2CFlagStatus = (uint32
发表于 2018-09-12

STM32F4 开发笔记2: IO输出的设置

    本文介绍STM32F407IO输出功能的设置方法。       例:使用STM32F407的F9接L2,F10接L3,如下图所示:         设置步骤如下:    1、打开hal.h文件,更改一下内容,注意HAL_Init函数的声明是已经存在的,不需要更改,我们只需要加入L2和L3的宏定义,以及L2和L3打开与关闭的功能宏就可以了,这部分按照原理图生成,应该没有什么不好理解的。GPIO_SetBits是ST官方提供的置位函数
发表于 2018-09-12
STM32F4 开发笔记2: IO输出的设置

STM32F0开发笔记3: STM32CubeF0介绍

    本文介绍 STM32CubeF0。    STM32CubeF0 gathers, in a single package, all the generic embedded software components required to develop an application on STM32F0 microcontrollers. In line with the STMCube? initiative(首创), this set of components is highly portable, not only
发表于 2018-09-12
STM32F0开发笔记3: STM32CubeF0介绍

STM32F0开发笔记4: STM32CubeF0固件架构

    本文介绍STM32CubeF0固件架构。    STM32CubeF0固件架构图如下图所示。      1、Board Support Package (BSP)     This layer offers a set of APIs relative to the hardware components in the hardware boards(such as LCD, Audio, microSD and MEMS drivers). It is composed of two
发表于 2018-09-12
STM32F0开发笔记4: STM32CubeF0固件架构
热门资源推荐

小广播

最新视频课程

何立民专栏

单片机及嵌入式宝典

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

相关热搜器件

大奖娱乐官方网站世界版权所有 京ICP证060456号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright ? 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
2018白菜网址大全 开户送体验金68 最新送彩金网站大全 注册送68体验金 注册送白菜网