SEGGER | 基于STM32F405 + Keil - RTT组件07 - J-Scope数据可视化,RTT方式 + DWT定时器时间戳

导言


在上一章节SEGGER | 基于STM32F405 + Keil - RTT组件06 - J-Scope数据可视化,使用RTT方式的第4.3章节提到,如果消息包不包含时间戳的话,那么J-Scope的横坐标的单位时间默认是100us,说白了时间戳是假的。会导致如下问题:

  1. 数据不具有时间关联性:没有时间戳的情况下,显示的数据点仅按接收到的顺序排列,而没有明确的时间信息。这意味着你无法知道每个数据点发生的精确时间,可能会导致无法有效分析数据的时序关系。
  2. 无法精确判断事件的发生顺序:如果系统有多任务或者时间敏感的操作,缺少时间戳意味着你无法清晰地区分不同事件之间的时间间隔,从而影响对系统运行状况的诊断。
  3. 数据分析困难:在进行系统性能分析、故障排查或优化时,时间戳非常重要。没有时间戳,可能会让你很难评估数据变化的趋势,无法有效关联系统内部的各项操作。

为解决上述问题,参考官方提供的时间戳例程,消息包添加上时间戳。

效果如下:

项目源码:https://github.com/q164129345/MCU_Develop/tree/main/jlink_scope_rtt_dwt_timestamp

一、代码


1.1、tim.c

如上图所示,定时器14的中断周期改为1ms。

1.2、main.c


二、观察时间戳与数据



从上面两图可以看到,正弦波的周期是100ms。因为定时器的中断周期是1ms,数据长度是100。波形很准。

从上两图可以看到,变量每隔1ms翻转一次,也很准确。

三、细节补充


3.1、消息包的类型,注意一下是4个字节

如上图所示,刚开始,msg1与msg2的变量类型用uint8_t,目的是减少消息包的字节数,毕竟msg1与msg2的值的范围在0 ~ 255。但是,J-Scope的波形显示不正常。后来,我改用uint32_t后,J-Scope的波形显示正常了。

相关推荐
国科安芯2 小时前
面向卫星测控应答机的抗辐射MCU信号采集与定时控制研究
单片机·嵌入式硬件·mcu·架构·卫星·商业航天·抗辐射
CC城子2 小时前
EtherNet/IP I/O 丢包排查(linux系统)
linux·单片机·tcp/ip·ethernetip
新晨单片机设计2 小时前
S010A-基于STM32单片机水温控制系统(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
事界见闻3 小时前
高性能电机控制MCU选型对比:精度、功耗与实时性如何兼得?
单片机·嵌入式硬件
Brilliantwxx3 小时前
【STM32】 初认识USART串口
linux·stm32·单片机·嵌入式硬件·架构
沐欣工作室_lvyiyi4 小时前
基于STM32的人脸识别门禁系统的设计与实现(论文+源码)
stm32·单片机·嵌入式硬件
zcmodeltech8 小时前
智慧矿山沙盘模型多场景控制系统设计——基于STM32与Modbus RTU的智能开采、无人矿卡、数字孪生全场景联动方案
数据库·stm32·单片机·嵌入式硬件·物联网
qq_402995758 小时前
Secure Boot Part 3 —— 信任根和信任链
arm开发·stm32·信任链
youcans_8 小时前
【嵌入式软件AI编程】03. STM32 VS Code 开发环境与工具链
stm32·单片机·ai编程·嵌入式软件·claude code
国科安芯8 小时前
抗辐射MCU在低轨卫星电源管理单元中的电压监测与保护策略研究
大数据·单片机·嵌入式硬件·电源管理·低轨卫星·抗辐射·星间链路