观察信号波形——Keil仿真调试 / SaleaeLogic16逻辑仪
一、使用 Keil 仿真示波器逻辑分析引脚变化
1.1 调试前配置
- 打开 Keil 工程
这里的过程代码是基于HAL库STM32F103C8T8移植uCOS中实现三个任务的工程文件 - 在工程的MDK-ARM文件夹下创建一个.txt文件,添加以下内容:
map 0x40000000, 0x40007FFF read write // APB1
map 0x40010000, 0x400157FF read write // APB2
map 0x40020000, 0x4007FFFF read write // AHB1
map 0x50000000, 0x50060BFF read write // AHB2
map 0x60000000, 0x60000FFF read write // AHB3
map 0xE0000000, 0xE00FFFFF read write // CORTEX-M4 internal peripherals
-
将.txt文件后缀名改为.ini
若更改后“文件类型”没有变为配置设置 ,则可在最上面的文件->选项打开文件夹选项,
在查看中取消勾选隐藏已知文件的扩展名
,即可直接把**.txt修改为.ini**;
-
将文件添加到工程项目
点击魔法棒,在Dubug界面,将创建的.ini文件添加到工程中,点击OK即可;
1.2 调试观测
-
点击右上方的Debug按钮,进入调试界面;
-
选择Logic Analyzer;
-
点击Setup…;
-
添加并设置引脚和串口
添加如图所示的3个引脚和串口,将这 3 个观测信号的Display Type改为Bit
显示,可配置颜色,最后点击Close关闭设置窗口;
-
点击左上角的Run按钮,全速运行;
-
运行结果
观察上面的逻辑分析仪波形结果可以看到:
PC13 引脚输出电平周期为 1s,PA3引脚输出电平周期为 3s,串口输出周期为 2s。
1.3 结果分析
对比main.c中的引脚和串口代码:
-
PC13 引脚:
-
PA3 引脚:
-
USART1 串口:
分析上述代码可知,代码中的周期设置与逻辑分析仪的波形电平周期一致。
二、使用真实逻辑仪 SaleaeLogic16 观测波形
2.1 SaleaeLogic16 软件的安装
链接:https://pan.baidu.com/s/1Zpg5V44uO_Ly907CdCtm5A
提取码:bstv
根据自己电脑的操作系统选择对应的版本安装,开始安装之后一直next即可,可修改软件的安装位置。
具体使用操作可参考:
逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)
2.2 LED波形观测结果
波形采集后保存,进入观测:
-
PC13引脚:
图中的 PC13 引脚的 LED 控制周期信号的实际周期为:0.999…s,与设置的 1s 周期有一点误差,波形电压幅度一致。 -
PA3引脚:
图中的 PA3 引脚的 LED 控制周期信号的实际周期为:3.00132…s,与设置的 3s 周期有一点误差,波形电压幅度一致。 -
误差分析
造成理论周期与实际测量存在较小误差的原因可能是逻辑分析仪连接或实验工具质量问题等,产生了较小的时间误差。
2.3 串口波形观测结果
- UART串口输出:
- 结合串口通信协议分析
UART 使用的是异步串行通信。
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。
串口通信协议数据传送时,每一个字符为10 位(1 个起始位,7 个数据位,1 个校验位,1 个结束位)
起始位—先发出一个逻辑“ 0 ”信号,表示传输字符的开始;
数据位—可以是 5~8 位逻辑“ 0 ”或“ 1 ”;
校验位—数据位加上这一位后,使得“ 1 ”的位数应为偶数(偶校验)或奇数(奇校验);
停止位—它是一个字符数据的结束标志。可以是 1 位、1.5 位、2 位的高电平;
空闲位—处于逻辑“ 1 ”状态,表示当前线路上没有资料传送。
从逻辑分析仪的波形可以看到,每一个字符为 10 位,有一个逻辑“ 0 ”的起始位,7 位数据位,1 为奇偶校验位,1 位高电平停止位,1 为处于逻辑“ 1 ”的空闲位。其中的数据位:1101000 即十六进制数 0x68。
可见,串口波形符合串口通信的数据传输格式。
三、小结
本文主要是对上篇博客中的信号波形进行了仿真示波器分析和真实逻辑仪观测,分别通过 keil 仿真示波器和逻辑分析仪来观测引脚波形,结果显示波形周期与代码设置的要求基本一致。另外还结合串口通信协议对UART进行了波形分析,加深对串口通信协议的理解与记忆。用逻辑分析仪观测周期时,与设置的周期稍有偏差,其原因可能是逻辑分析仪连接或实验工具质量问题等,但对结果影响不大,还是能通过波形比对,得出结论。