KEIL中逻辑分析仪的使用
本学期开了门嵌入式的课程,在实验课上用到了一款基于ARM Cortex-M3处理器的LPC1768的实验板。本来这种课程我觉得应该可以学到很多东西,可是我发现实验课上老师基本只是讲了xx实验课的要求,然后你就拿着人家建好的工程编好的程序跑起来,仅仅只是运行了一下程序就可以结束了这个实验。学生学到的东西真的太少,比如如何调试的问题,你如何能知道你编写的代码输出是不是你想要的?你如何知道你编写的代码的效率是不是符合要求的?这些老师都不会教你。所以我觉得要想真正学到东西,无论什么时候都得靠自己。
见网上有不少百度“如何在Keil中使用逻辑分析仪“的帖子。其实这个在以前用51的时候自己做过了,不过没有整理下来。现在觉得还是有必要把学到的都记录下来,给自己复习,与大家分享。
下面就“如何在Keil中使用逻辑分析仪”进行讲解,小编会用简单的语言和图片进行阐述,你一定可以掌握。
如图主程序所示,程序的目的是要产生精确的1Hz的方波信号,则方波信号的高电平占0.5s,低电平占0.5s,本程序利用定时器的定时功能,每0.5s时间到则将P3.25引脚输出的电平翻
转一次,从而可实现完整的1Hz方波信号的输出。

程序写好了,编译好了,那么下边就要使用逻辑分析仪进行软件调试,看看输出是不是你想要的波形。
首先进入调试模式,(讲解的时候我就从菜单栏而不用快捷面板上的快捷按钮吧,也为了让大家熟悉所使用的工具在哪个菜单下。)
菜单栏的Debug下拉菜单的start/stop debug session选项,

然后调出逻辑分析仪,(只有进入调试模式才可以看到逻辑分析仪)。在菜单栏的View下拉菜单中找到Analysis Windows就看到逻辑分析仪了

点出来之后就是下边的窗口了:

下边是如何设置的问题。
首先你要知道那些引脚可以被检测到,你可以在命令行窗口输入dir vtreg,如图所示:

然后就可以显示出那些引脚是可以被检测到的。本程序我检测的是P3.25脚,即PORT3口的25脚。
然后点击逻辑分析仪面板左上角的setup开始设置,新建插入(红叉叉旁边)直接输入port3.25回车就可以了:

然后设置成下边的形式,意思是将port3口的值与上0x02000000后就只剩下P3.25的状态值,然后右移25位出来。

最后点击run全速运行就可以看到输出的波形了:

如图所示一个脉冲间隔0.499957符合我们的要求。
KEIL中逻辑分析仪的使用的更多相关文章
- KEIL中启动文件详解(汇编语言)
原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要 ...
- keil中出现Undefined symbol FLASH_PrefetchBufferCmd (referred from main.o)等问题解决办法
在keil中仿照别人的程序写了RCC初始化的程序,编译后出现以下问题 .\obj\pro1.axf: Error: L6218E: Undefined symbol FLASH_PrefetchBuf ...
- keil中的串口调试:
keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如 ...
- Keil中的code关键字
一般说来,我们在C语言中定义的每一个变量初始化后都会占用一定的内存(RAM)空间.但是在keil中提供了一个特殊的关键字“code”,这个关键字在标准C中是没有的.其语法举例如下: unsigned ...
- 关于keil中data,idata,xdata,pdata,code的问题
转自关于keil中data,idata,xdata,pdata,code的问题 从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类 ...
- 在KEIL中的模块化程序写法
在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问题的.但是当程序很长的时候, ...
- 在keil中使用Astyle格式化你的代码的方法
一个好的程序,不仅要有好的算法,同时也需要有良好的书写风格.写出好的算法不容易,但是好的代码风格却并不困难.提到格式化代码,Astyle是一个不能错过的工具,它可以方便的将程序代码格式化成自己想要的样 ...
- keil中for循环变量递减,无法跳出循环的问题
定义j时应注意其变量类型char,此循环当j=0时,再执行一次则keil中j=0XFF,而不是-1,所以无法跳出循环.但在vc6.0中是可以跳出循环的. 解决办法如下:不能让j的值为负数 uchar ...
- keil中使用_at_绝对地址定位
使用_at_关键字对存储器进行绝对地址定位程序如下: #include<reg51.h> ] _at_ 0x8000; main() { LED_Data[] = 0x23; } 在kei ...
随机推荐
- github学习(一)
初识github篇. 一.什么是github: GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. g ...
- 关于 myBatis 中的 jdbcType的细节问题
前几天上线了一个 版本,第二天到公司的时候,在cat上发现了一个长sql查询非常耗时,几乎把线上的项目搞崩溃了.我马上开始排查问题.最终发现 球队的ID传过来的时候是String 类型的,但是在执行s ...
- fmt标签格式化数字和时间
有时候需要格式化输出数字和时间,fmt 标签是个很好用的标签,下面是我做的总结: 在页面的头部加入这个标签 <%@ taglib uri="http://java.sun.com/js ...
- JAVA开发环境搭建 - Eclipse基本配置
Eclipse设置的内容包括许多方面,不同的开发人员,不同的项目需要,可能对Eclipse的设置不尽相同.如下内容仅是对本人的一些基本设置做一些记录,以作备忘.后期会逐渐对相关内容进行更新,仅供参考. ...
- SQL SERVER - 谈死锁的监控分析解决思路
1 背景 1.1 报警情况 最近整理笔记,打算全部迁移到EVERNOTE.整理到锁这一部分,里边刚好有个自己记录下来的案例,重新整理分享下给大家. 某日中午,收到报警短信,DB死锁异常,单分钟死锁12 ...
- Java中的for each实现原理与坑
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 在Java中,遍历集合和数组一般有以下三种形式: for (int i = 0; i < list.size(); i++) ...
- input解决浏览器记住密码问题
<input type="password" name="" id="">可以这样写 <input type=" ...
- .Net程序员学用Oracle系列(20):层次查询(CONNECT BY)
1.层次查询语句 1.1.CONNECT BY 语法 1.2.CONNECT BY 示例 2.层次查询函数 2.1.SYS_CONNECT_BY_PATH 2.2.WMSYS.WM_CONCAT 2. ...
- 使用Git将本地仓库与GitHub远程仓库相关联
这篇文章详细讲解了如何生成SSH,并链接到GitHub,123..... 1.如果你的GitHub里面没有仓库,就自己生成一个,如图所示 2.如果你有自己仓库,想在电脑本地新建一个,你需要将GitHu ...
- SQL SERVER 执行大于80M的SQL 脚本
在CMD控制器窗口 使用SqlCmd命令来执行 具体请看 SqlCmd /? 或者MSDN