这篇文章实在写得不错,怕以后找不到,故转载于此,感谢原文博主的分享。
转载地址:
https://hxydj.blog.csdn.net/article/details/100037901

在调试程序时有时候手头没有示波器,这时候就需要用到软件仿真。在软件仿真时可以通过逻辑分析仪来查看IO口的波形。但是逻辑分析仪对于新手来说不知道怎么用,现在就来说说逻辑分析仪如何设置。
首先用LED灯来测试,代码如下:

#define LED0 PAout(8)// PA8
#define LED1 PDout(2)// PD2
void LED_Init(void)
{ GPIO_InitTypeDef  GPIO_InitStructure;     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);   //使能PA,PD端口时钟  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;               //LED0-->PA8 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO口速度为50MHzGPIO_Init(GPIOA, &GPIO_InitStructure);                    //根据设定参数初始化GPIOB.5GPIO_SetBits(GPIOA,GPIO_Pin_8);                       //PA8 输出高GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                 //LED1-->PD2 端口配置, 推挽输出GPIO_Init(GPIOD, &GPIO_InitStructure);                    //推挽输出 ,IO口速度为50MHzGPIO_SetBits(GPIOD,GPIO_Pin_2);                       //PD2 输出高
}int main(void)
{delay_init();       //延时函数初始化LED_Init();         //初始化与LED连接的硬件接口while(1){LED0 = 0;LED1 = 1;delay_ms(100);   //延时100msLED0 = 1;LED1 = 0;delay_ms(100);  //延时100ms}
}

PA8和PD2口分别接一个LED灯,主程序中控制LED灯闪烁。
下来看看如何用keil软件仿真,并通过逻辑分析仪观察LED波形。

首先点魔术棒,打开设置界面。

在Debug选项中选择软件仿真,选择Use Simulator 选项。选择好之后点OK按钮。

然后点Dubug按钮,进入仿真界面。

后点模拟分析按钮,在下拉列表中选中逻辑分析仪。

这时候会打开逻辑分析仪的界面。
下来开始给逻辑分析仪中添加要观察的IO口。


点击逻辑分析仪窗口左上角 Setup按钮 打开设置界面。

设置界面打开后,里面是空白的。下拉我们给里面添加要监控的IO口。LED灯使用的是PA8 和 PD2 ,先添加PA8,首先点新建按钮。

然后再下面新建的编辑框中输入 (PORTA & 0x00000100)>> 8

然后显示类型选择 位,显示颜色可以自己定义。
下来用同样的方法添加PD2口,选择新建按钮,然后再编辑框中输入 (PORTD & 0x00000004)>> 2 ,显示类型选择位显示颜色自定义。

然后点close按钮,关闭设置窗口。

设置好之后,逻辑分析仪窗口左侧会出现刚才设置的两个IO口。然后点全速运行,开始执行程序。

等程序执行一段时间后,点停止按钮。

这时候逻辑分析仪窗口就会出现,两个LED的波形。

通过波形上就可以看到LED口电平隔0.1s翻转一次。说明程序执行成功。
通过对逻辑分析仪窗口添加要观察的IO口就可看到对应IO口的波形,但是感觉上面的方法添加IO口时比较麻烦需要计算每个IO口对应的值。还有没有其他简单的添加IO口方法。下面就说一说比较简单的添加方法。
方法二:

新建添加后,直接在编辑框中输入PORTA,然后底下显示类型中选位类型,下来在右移设置框里面填8,代表PA口的值右移8位,也就是要观察PA8的值。
用同样的方法添加PD2.

添加完成后点close按钮,关闭设置窗口。然后全速运行一会程序后,点停止按钮。观察逻辑分析仪窗口波形。

波形和刚才仿真的一样,注意逻辑分析仪窗口左侧显示的是PORTA和PORTD。和第一种方法直接位定义显示有区别。
还有一种更简单的方法。
方法三:

在新建的时候直接输入 PORTA.8 代表PA8口,输入完之后按回车键,软件会自动变成位定义。

然后在底下显示类型中选择位

同样的方法添加PD2口,新建编辑框,然后在里面输入PORTD.2,然后按回车键。

软件会自动变成位定义,然后在底下显示类型中选择位,设置完成后点close按钮。关闭设置窗口

然后全速运行一段时间,停止仿真。观察LED口波形。

波形和前面两种方法一样。
可以通过三种不同方法设置逻辑分析仪观察值,综合看来第3种设置方法比较简单快捷。
如果想要实时显示波形的话在调试的状态下选择view菜单下的 periodic window update。

这时候全速运行,就能实时显示LED的波形了。

keil软件仿真时如何使用逻辑分析仪查看波形(转载)相关推荐

  1. keil软件仿真时如何使用逻辑分析仪查看波形

    在调试程序时有时候手头没有示波器,这时候就需要用到软件仿真.在软件仿真时可以通过逻辑分析仪来查看IO口的波形.但是逻辑分析仪对于新手来说不知道怎么用,现在就来说说逻辑分析仪如何设置. 首先用LED灯来 ...

  2. Keil软件仿真时如何用逻辑分析仪观察变量值

    在调试代码的时候,有时候手头上没有硬件环境,就需要用到纯软件仿真.下面先看一下要测试的代码. #include "sys.h" #include "delay.h&quo ...

  3. keil软件仿真时,程序不能正常运行解决方法

    在用keil软件调试程序时,有时候手头没有硬件电路板,就需要用到软件仿真功能.但是使用软件仿真时经常出现一个问题,就是开始仿真后,程序就会卡在系统初始化函数中. 程序停在时钟设置这里就不动了,不能进入 ...

  4. Keil软件仿真STM32时出现“no ‘write‘ permission”,“no ‘read‘ permission ”的错误

    Keil软件仿真STM32时出现"no 'write' permission","no 'read' permission "的错误 在Keil中可以对我们的程 ...

  5. Keil软件仿真STM32互补输出PWM

    首先用Cubemx生成一个简单Keil工程,创建一个TIME4定时器,记得打开中断,用于让两个LED闪烁,型号:STM32F103VET6: 配置两个IO为输出状态,控制两个LED灯. 主函数中先打开 ...

  6. Keil软件仿真步骤

    目录 前言 一.准备工作 二.仿真 1.波形验证 2.变量验证 3.其他 注意事项 前言 在学习STM32的过程中会不可避免的遇到需要仿真的情况,其实大部分时候都是直接使用ST-Link进行硬件仿真, ...

  7. keil软件仿真看不到波形

    这两天想用keil软件仿真看spi与串口,iic通讯的波形.程序是没有问题的,但是keil仿真就是一直是低电平,一点变化都没有,而仿真点灯的,或者控制蜂鸣器的gpio能看到波形.在网上找了好久找到了大 ...

  8. 如何查找不同芯片keil软件仿真要配置的参数DAMSTM.DLL、-pSTM32F103C8

    KEIL软件仿真配置参数 这里以C8T6为例,其他芯片查找方法也一样 软件仿真需要选择 Use Simulator,下面的红框参数可以从KEIL软件给的芯片数据查看 点击软件的File选项,然后点击D ...

  9. 突破KEIL软件编译时 C51中断号最大只能为31限制的补丁,使中断号可以达到256

    突破KEIL软件编译时 C51中断号最大只能为31限制的补丁,使中断号可以达到256 资源来源说明 一个突破KEIL C51 中断号最大只能为31限制的补丁,使中断号可以达到256 阿莫电子论坛 ht ...

最新文章

  1. 一个“退学生”到CTO的逆袭之路
  2. linux磁盘分配方案,张明贵-Linux磁盘分区方案
  3. python 语言教程(4)字符串
  4. 你想被推荐系统毁掉么?
  5. Maven打包时去掉项目版本号
  6. ef core中如何实现多对多的表映射关系
  7. PS网页设计教程XIV——如何创建一个复古风格的PS布局
  8. spring mvc处理静态资源
  9. ubuntu mysql 操作_Ubuntu系统下MySQL数据库基本操作
  10. 如何完成dedecms外部数据库调用|跨数据库数据调用
  11. C# Double toString保留小数点方法
  12. linux经典学习网站及博客
  13. tomcat中JSP跳转Servlet时卡白页的原因
  14. Azure与Aliyun服务对比
  15. SCAU 计算智能 8615 快乐
  16. Perl变量作用域和自定义函数小结
  17. 罕见整套ZBrush笔刷合集,看完马上收藏了
  18. 反向交易: 减少最大回撤以及在其它市场上测试
  19. 第三方物流学习(二)
  20. css,qss font-family常用的黑体宋体等字体中英文对照

热门文章

  1. Opencv之图像滤波:2.均值滤波(cv2.blur)
  2. 23-职位分类展示平台响应式网页模板{HTML JS CSS)
  3. NuGet 是什么? 理解与使用
  4. 无限互联学习连载六 SVN使用
  5. liunx服务配置 详细版
  6. 光纤宽带接入工程设计降本增效方案集(2)
  7. Java的activiti的demo_activitiDemo
  8. Visualvm监控远程机器上的Java程序
  9. pandas学习过程-01
  10. 用HTML5新标签构建页面