利用keil5虚拟示波器进行串口波形仿真分析与逻辑分析仪(SaleaeLogic16)抓取LED输出电平和串口通信的波形及协议分析

一、使用 Keil 的仿真示波器逻辑分析引脚变化

1.仿真前的设置

注意:

本实验是在完成STM32F103C8移植uCOS基于HAL库(uc/OS-III)实验的基础上

MDK-ARM文件夹中添加一个文本文件(TXT),命名为debug,改文件后缀为.ini
在这里插入图片描述
debug.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

添加完后,打开keil,将添加的debug文件添加到keil项目中
在这里插入图片描述
添加完成后再编译一次
在这里插入图片描述

2.调试

编译没有错误后点击start debug进入调试
在这里插入图片描述
选择逻辑分析仪
在这里插入图片描述
设置需要观察图像的端口号,点击setup
在这里插入图片描述
输入端口号,注意:每个端口的设置display type选为bit
设置完成后关闭
在这里插入图片描述
所有设置完成后点击run就能看到该端口的波形
在这里插入图片描述

3.结果

观测结果:
在这里插入图片描述

4.结果分析

观察上述波形可以得出:
PC13 引脚输出电平周期为 1s,PA3 引脚输出电平周期为 3s,串口输出周期为 2s
对比相关代码(main.c函数中)
PC13引脚:
在这里插入图片描述
PA3引脚:
在这里插入图片描述
USART1 串口:
在这里插入图片描述
可以得出,keil中的端口波形的周期与代码中的周期一致。

二、用实物(逻辑分析仪仪 SaleaeLogic16)观测波形

1.SaleaeLogic16软件的安装及初识

参考:
逻辑分析仪软件(Logic+Setup+1.1.34)的安装及界面初识

三、波形的观测

1.观测前的相关配置

清除除了0-4的其他采集端口,
采集的将speed设置为8MS/S
Duration (Record data for)设置为10,单位为second
在这里插入图片描述
Analyzers中选择Async Serial,添加串口波形采集
在这里插入图片描述

2.线路连接

逻辑分析仪stm32f103c8t6
CH0PA9
CH1PA3
CH2PC13

3.波形观测

3.1波形的采集

设置完成后点击start,逻辑分析仪开始采集波形
波形采集结束后的波形
在这里插入图片描述

3.2波形的分析

将采集到的波形放大,可以看到在串口输出的文字:hello us/OS
在这里插入图片描述

在这里插入图片描述
从图中可以看出PC13 引脚输出电平周期为 1s,PA3 引脚输出电平周期为 3s,串口输出周期为 2s,与程序所设计的端口的周期相同。

4.协议分析

UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合,数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。简单来说就是,如果你配置的波特率为9600,那么你每一bit时间就是1/9600 = 104us。

四、总结

本实验在STM32F103C8移植uCOS基于HAL库(uc/OS-III)实验的基础上,还是比较简单的。

五、参考资料

https://blog.csdn.net/qq_57357292/article/details/121632808?spm=1001.2014.3001.5501
逻辑分析仪软件(Logic+Setup+1.1.34)的安装及界面初识
Saleae Logic 16 逻辑分析仪使用上手手册

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 要使用keil5虚拟示波器,首先需要安装keil mdk,并下载工具Keil Array Visualization V1.0。然后打开相关选项,包括打开update选项和打开TCP端口号相关选项。\[1\]在虚拟环境下查看输出PWM的周期和频率,可以全速运行输出波形后,用鼠标滚轮改变PWM波的大小,选中波形的一个位置,图形底部会出现时间1。再将鼠标放在一个PWM结束的地方,会出现时间2。周期可以通过时间2减去时间1来计算,频率可以通过周期的倒数得到。如果选取两个PWM波,只需将结果除以2即可。占空比的计算类似,只需要计算高电平(低电平)的时间,然后除以周期即可。\[2\]在使用keil5虚拟示波器之前,还需要更改一些配置,包括选择debug并勾选use silmlator,然后根据实际需求更改配置。然后击调试按钮,再虚拟示波器按钮进入软件仿真界面。击setup进入配置界面,添加要检测输出的GPIO引脚号,并选择display type为bit。最后击全速运行按钮,就可以看到波形输出了。\[3\] #### 引用[.reference_title] - *1* [keil MDK使用虚拟示波器](https://blog.csdn.net/u011046042/article/details/80750817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [如何使用Keil5中的虚拟示波器进行软件仿真](https://blog.csdn.net/weixin_43737995/article/details/98049869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩923

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值