STM32使用J-Link仿真相关汇总

发布者:shiwanyongbing最新更新时间:2017-11-18 来源: eefocus关键字:STM32  J-Link仿真 手机看文章 扫描二维码
随时随地手机看文章

目录:

一、SWD实时仿真接线

二、仿真设置

三、仿真时问题的解决

1、仿真时添加变量或数组

2、程序下载

3、尽量不要由J-Link给线路板供电

4、仿真器与线路板连接需可靠

5、使用J-Link时,Keil软件出现无响应

----------------------------------------

所有的操作基于WIN XP,stm32使用J-Link(SWD模式)。

另可参见系统、软件、数码/Keil编译软件的使用汇总(三、Keil5.12编译报错的处理)。


----------------------------------------------------------------------------------------------------------------

一、SWD实时仿真接线

STM32使用J-Link仿真相关汇总


--------------------------------------------------------------------------------------------------

二、仿真设置

J-LINK的SWD仿真时,对单片机口线的设置

void KEY_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;

  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //关闭JTAG,否则“增加”PBin(3)键失效

//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);

//设置为GPIO_Remap_SWJ_Disable,表现为程序执行到KEY_Init()函数会停住,有时会

//报“CPU_REG_SET():Register 0 is already marked as valid.”

//设置为GPIO_Remap_SWJ_JTAGDisable即可解决此问题。

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_15;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(GPIOB, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_Init(GPIOD, &GPIO_InitStructure);

}

STM32使用J-Link仿真相关汇总

----------------------------------------------------------------------------------------------------------------

三、仿真时问题的解决

1、仿真时添加变量或数组

1)连接上J-Link仿真器,出现数组显示为变量,只要在此处设置断点,再仿真到相应的数组位置即可解决此问题。

2)点变量或数组右键可快速添加到Watch中。

2、程序下载

1)程序下载完成后,J-LINK使单片机处于复位状态,只要start debug,然后再stop debug即可。如下图。

STM32使用J-Link仿真相关汇总

或者勾选“Reset and Run”

STM32使用J-Link仿真相关汇总

2)在试验时“编程到FLASH时写选项字节”前面切记不要打钩,这是读保护、写保护。

STM32使用J-Link仿真相关汇总 

3、尽量不要由J-Link给线路板供电,内部有短接。

STM32使用J-Link仿真相关汇总

4、仿真器与线路板连接需可靠

5、查看仿真器是否连接上

STM32使用J-Link仿真相关汇总

如果勾选2处不能烧写,可按下图
STM32使用J-Link仿真相关汇总

5、使用J-Link时,Keil软件出现无响应

J-Link连接上线路板,中途线路板断电,极容易出现无响应。拔去J-Link连接电脑的USB线再插上。

----------------------------------------------------------------------------------------------------------------


关键字:STM32  J-Link仿真 引用地址:STM32使用J-Link仿真相关汇总

上一篇:STM32_CorTex-M3位带操作的理解
下一篇:用STM32读取MPU6050模块的原始数据

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

有关stm32的串口发送与接收的逻辑问题
在弄毕业设计时遇到一个问题,而且这个问题困扰了我很久,究其原因是我没有一个清晰的逻辑。 首先我想实现的功能是循环向串口2发送一个命令数组,并且每发送完这个命令后,串口2接收一串数据,这个数据是由串口2连接的模块发送的。用串口2接收到后用串口1通过串口小助手打印出来。 我的问题就来了,我居然认为串口2发送出去的命令数组居然会中断串口2的接收中断!更可怕的是,我居然在串口2的接收中断中把接受到的数据用串口1打印出来。然后我就发现怎么中断不了也打印不出!我一直以为是我的发送数组函数写得有问题,或者是中断函数写错了,结果调试了很久,代码改了又改,又重新复习一遍串口知识,还是觉得自己写的串口函数都没问题。太苦恼了。 但终于我在这
[单片机]
STM32之串口通信
串口通信原理 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹
[单片机]
<font color='red'>STM32</font>之串口通信
STM32封装自己的库函数(GPIO初始化)
初始化GPIO 1.确定引脚号 2.确定模式 3.GPIO类型 4.定义上拉或下拉 定义初始化GPIO引脚结构体 typedef unsigned char unit8_t typedef struct { unit32_t GPIO_Pin; GPIOMode_Typedef GPIO_Mode; GPIOOType_Typedef GPIO_OTypde; GPIOSpeed_Typedef GPOI_Speed; GPIO_PuPd_Typedef GPIO_PuPD; }GPIO_InitTypedef; typedef enum { GPIO_Mode_
[单片机]
STM32 CAN学习
最近在搞stm32实验板的can现场总线实验,之前只是搞过STC51的串口通信,相比之下,发觉can总线都挺复杂的。开始时,知道自己是新手,只知道can总线跟串行通信,485通信,I2C通信一样都是用来传输数据通信的,对其工作原理一窍不通,还是从基础开始看书看资料,先了解它的基本原理吧。 原来can总线有以下特点: 主要特点 ? 支持CAN协议2.0A和2.0B主动模式 ? 波特率最高可达1兆位/秒 ? 支持时间触发通信功能 发送 ? 3个发送邮箱 ? 发送报文的优先级特性可软件配置 ? 记录发送SOF时刻的时间戳 接收 ? 3级深度的2个接收FIFO ? 14个位宽可变的过滤器组-由整个CAN共享 ? 标
[单片机]
<font color='red'>STM32</font> CAN学习
STM32高级开发-在GCC和GNU中使用printf打印串口数据
在大家使用keil或是iar开发stm32等arm芯片的时候,想来最不陌生的就是使用print通过串口输出一些数据,用来调试或是其他作用。但是要明确的是由于keil iar gcc 他们使用的标准C语言库虽然都遵循一个标准,但他们底层的函数实现方式都是不同的,那么在GCC中我们能否像在keil中一样重映射print的输出流到串口上呢?答案是肯定的。 keil中的重映射方式及原理 #include //include stm32f10x.h #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE {
[单片机]
基于STM32的两轮平衡小车设计
学习一种单片机最快的方式莫过于用它实际制作一个作品了,前些天看到有人在玩平衡小车,感觉非常有趣,于是就决定自己动手制作一个基于stm32的两轮平衡小车。从电路板设计,到程序编写,一步一步的,希望自己在这个过程中有一定的收获。 电路设计的基本过程一般是这样的:需求分析——元件选型——原理图设计——PCB设计——焊接调试。 需求分析:在这里,主要是确定小车需要哪些模块、外设或接口。首先,stm32最小系统是必须的,这是小车控制的核心。然后小车的两个轮子需要两个H桥驱动和编码器接口。需要陀螺仪感知小车的姿态(包括倾角,转向角,角速度等)。 需要一些调试和指示用的外设(蜂鸣器,LED等)。需要电源电路为系统供电。需要电池电压采
[单片机]
基于<font color='red'>STM32</font>的两轮平衡小车设计
STM32学习基本 存储器、CRC、电源
1、STM32命名规则? 例子:STM32 F 103 C 8 T 6 A xxx 其中: (1) 产品系列 STM32:基于ARM核心的32位微控制器; (2)产品类型: F:通用型 (3)产品子系列: 101:基本型;102:USB基本型,USB2.0全速设备;103:增强型;105/107:互联型。 (4)引脚数目: T:36脚;C:48脚;R:64脚;V:100脚;z:144脚。 (5)闪存存储器容量: 4:16k;6:32k;8:64k;B:128k;C:256k;D:384k;E:512K。 (6)封装: H:BGA;T:LQFP;U:VFQFPN;Y:WLCSP64; (7)温度范围: 6:工业级:-4:0-85;7
[单片机]
stm32定时器优先级
什么是优先级   优先级是具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。   当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。 stm32定时器优先级   STM32 可以支持的 68 个外部中断通道,已经固定的分配给相应的外部设备。每个中断通道都具备自己
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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