一、任务内容
分别使用Keil虚拟仿真逻辑仪和 真实逻辑仪(SaleaeLogic16)抓取
STM32F103C8T6移植uC/OS-III基于HAL库完成多任务LED输出电平和串口通信的波形,进行协议分析
二、使用Keil虚拟仿真逻辑仪LED观察输出电平和串口通信的波形
- 需要先选择Use Simulator进行仿真。
- 这里若是直接进入调试出现错误的时候,检查Debug设置里下面2项设置
Dialog DLL默认是DCM3.DLL
Parameter默认是-pCM3
应改为:
Dialog DLL默认是DARMSTM.DLL
Parameter默认是-pSTM32F103C8 //为自己的stm32型号
- 然后编译,编译通过后,开始debug模式,如图:
-
选择逻辑分析Logic Analyzer
-
首先选择setup,添加引脚和串口,我的是PC3,PB0,usart1,引脚可简写如PORTC.13即可生成如下所示,在选择Bit,然后关闭窗口即可,5开始分析。
-
直接打开仿真示波器运行时会自动停止,并报错某些地址没有写的权限,此时需要在工程下添加一个文件。
- 先创建一个TXT文件,并添加以下内容(位置在MDK-ARM下)修改后缀为.ini
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
-
在项目中引入该文件
-
波形图如下所示
可以从波形图看出我的PC13周期是3s,PB0是1s,串口1是2s。
PB0
PC13
Usart1
三、使用SaleaeLogic16进行协议分析
1. 简介
1.Saleae16逻辑分析仪,界面操作简单,易学,易用,是电子开发人员调试、分析的好工具
2.Saleae16是将采样出来的实时数据送入电脑内存中,应用压缩算法,深度最高可达10G
3.Saleae16可以自动分析多种常用通信协议,直接得到分析数据,其中SaleaeLogic_1.1.15 支持10种协议解释,SaleaeLogic_1.1.16支持17种协议解释,包括: AtmelSWI,Biss ,CAN,DMX-512, I2C, I2S/PCM, JTAG,LIN,Manchester,MDIO,1-Wire,PS/2Keyboard/Mouse,AsyncSerial,Simple Parallel, SPI, UNI/O,USB1.1
4.Saleae16采用资源动态复用,3个通道最高采样率100M,6个通道最高采样率50M,9个通道最高采样率32M,16个通道最高采样率16M
5.Saleae16使用的USB接口,必须是USB2.0接口
6.Saleae16采集的数据可以选择存储, 导出表格,数据显示支持数据显示成为10进制、16进制、二进制、ASCII码,便于进行数据分析和数据比较
7.支持上升沿、下降沿、高电平、低电平等多种触发方式,也可选取多个通道“与逻辑”的关系进行触发选择,方便、实用
8.软件支持多种采集频率和采集深度, 可根据实际应用需求自由结合
9.还支持模拟输出功能,可以对软件本身支持的协议格式进行模拟演试输出
2. 下载安装
链接:https://pan.baidu.com/s/10PaspJRG7OH1GI5jxoIgTg
提取码:0614
安装过程很简单,一步到底就行
3. 开始分析
- 开始界面,未连接逻辑分析仪时,为Start Simulation
- 选择演示设备
- 当接入逻辑分析仪进行实际的采集和实验时,采集按钮由以前的START STMULTAR变成了START
- 修改波形幅值比例
- 修改触发方式
- Analyzers选项,各种协议选择
- 使用通道0,1,2
分别将stm32f103c8t6的引脚PB0,PC13,PA9接到通道0,1,2,同时将一个GND接地。点击Start,开始分析
PB0:
PC13
PA9,也即是串口一
分析串口
放大图中位置