文章目录
- yPlot介绍
-
-
-
- 特点:
-
-
- 使用帮助
-
- 1 软件页面说明
-
- 鼠标操作
- 2 如何连接下位机(开发板)
- 3 通信协议说明
-
- 3.1 下位机(开发板)向软件发送波形的协议
- 3.2 上位机向下位机发送指令的协议
- 4 STM32示例程序
- 4.1 波形发送
- 4.2 接收代码
- 4.3 波形生成函数
- 4 如何二次开发
yPlot介绍
这款软件可以将串口接受到的数据以波形的方式显示,方便查看数据和调试参数。在电赛等一些场合用来调试PID参数非常方便。
在刚开始参加比赛的时候做无人机,全靠肉眼调参,然后一遍又一遍的修改参数,编译程序,下载程序。效率低而且慢。后来了解到有软件示波器,用过匿名的,用过山外调试助手,但是他们看波形还行,在线修改参数不方便。后来又了解到一个叫做serialplot的软件,非常好用,但是发送参数还是感觉不合适。所以就想着自己开发一款软件用来调参。
这款软件UI清新,通信协议简单,发送命令、波形名称显示等更多考虑到舒适性的问题。波形显示窗口使用的是QCustomPlot控件。
特点:
-
自适应数据通道,自动添加线条名称
-
支持超大数据量显示不卡顿
-
支持多种波特率
-
界面美观、性能强劲
-
PID调试神器
-
鼠标操作非常方便
-
发到上位机的数据类型只能是 float 型 !!!
开发环境
- QT5.9.8
项目开源仓库链接
- github:https://github.com/syuan7/y-serialplot
下载安装包
-
左键框选放大
-
右键按住可拖动线条
-
单击右键视图复位
-
左击线条突出显示
-
左击图例隐藏线条
-
按钮功能
- 命令发送区域
- 无线连接
这里提供了CH340的驱动,一起放在软件目录下了。
如果安装失败,可以尝试先点击卸载,然后再点击安装。
4.1 波形发送
例程中使用的是 STM32 的串口1进行数据收发。
- 波形发送业务代码
12行的通道名称,是一个字符串,不同通道之间以 间隔,上位机中设置了多少个通道就写多少个名字。
15行定义了发送的数据数组,数组类型需要和上位机中设置的类型一样一致。数组成员数量需要和上位机中设置的通道数量一致。
16~19行对数组赋值。数据是 函数生成的三角函数。
20~22行对数组赋值。数据是 函数获取的上位机设置的PID数值。
26~32行使用串口1,通过数据指针将数据发出。 函数是自己是自己实现的串口多字节发送函数。
- 波形发送驱动
4.2 接收代码
- 接收驱动(串口中断函数)
-
这个函数不需要我们调用它,它会在单片机串口每接收到1Byte数据时自动调用。比如发了发送一个 hello 字符,单片机就会自动调用5次这个函数。
-
接受到的字符会存在 数组中,当接收到 时,会停止将数据保存到数组,并且置位 ,直到我们处理了这一帧数据。
-
使用这种方法会让程序有层次性,但是会出现数据阻塞(必须要处理了上一帧数据才会接收下一帧数据)。
- 解析函数
-
关于 函数大家自行了解。
-
第6行的 字符格式化,和第3.2节的接受函数对应。
- 接收的业务代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!