使用QT绘图控件QCustomPlot绘制波形图

使用QT绘图控件QCustomPlot绘制波形图

获取的压缩文件解压之后内容如下:

使用QT绘图控件QCustomPlot绘制波形图

帮助文档添加完毕之后,我们就可以方便的查看各个类、函数的使用方法了。

当QCustomPlot中的哪个类或函数不清楚用法,我们可以将鼠标放到(或悬浮)某个类或函数上面,然后按F1键,就能调出该函数的详细使用说明。

使用QT绘图控件QCustomPlot绘制波形图

添加必要支持库

因为QCustomPlot中支持打印,所以需要在 文件中添加。

使用QT绘图控件QCustomPlot绘制波形图

限定曲线显示的区域

设计软件界面的时候,首先要想好我们在哪个位置显示曲线。

具体实现步骤如下:

1、进入图形设计界面,添加Widget控件,利用Widget控件对曲线的显示区域进行占位。

2、在所添加的Widget区域点击右键,选择“提升为”按钮,提升类名称输入“QCustomPlot”,点击添加。

QCustomPlot是一个绘图的类,它继承于Widget,界面中的Widget类提升为QCustomPlot才能够绘图。

3、去掉原有的TableView,添加一个按钮用于测试,编译并运行,软件界面如下:

使用QT绘图控件QCustomPlot绘制波形图

2、在主窗口MainWindow构造函数中添加如下代码,即可定义一条曲线。

QCustomPlot中的每一个曲线是一个Graph对象,要显示曲线,首先要添加一条曲线:ui->myCustomPlot->addGraph(); 。

凡是跟显示数据有关的就对Graph进行操作或调用Graph对象提供的方法。

朋友们,思考一下,为什么Y轴的上限我初始化为5000家可以在留言区说出你的想法哈。

3、在头文件mainwindow.h中定义两个QVector数组,用于存放横轴和纵轴的数据。

使用QT绘图控件QCustomPlot绘制波形图

下面我们要做的就是利用串口通信,获取声音传感器的数据,然后将声音的强度保存到数组arrY中,随后调用 ui->myCustomPlot->replot(); 语句完成重绘曲线。

发送串口数据

根据上一篇网文,我们知道我们今天要编写的Qt软件,相当于上一篇网文中的ModScan32软件。

我们要想获取声音传感器的值,只需要上位机以十六进制的方式发送数据帧: 。

STM32端收到串口指令之后,解析此数据帧,将当前的声音传感器的值封装数据帧之后,发送给上位机。

先用串口助手验证一下,确保硬件没有问题:

使用QT绘图控件QCustomPlot绘制波形图

由上图我们可以看出来,数据: 发送之后,收到了满足预期的数据帧: ,证明串口通信部分代码是没问题的。

注意:

  • 发送数据之前要先打开串口,并且串口的波特率要跟硬件STM32的串口波特率一致,即115200。
  • 为了方便查看,记得勾选Hex发送和Hex显示。

解析串口数据

解析STM32发送过来的结果数据。

解析:

1、首先要对接收到的一帧数据进行CRC校验,然后将计算出来的校验位和收到数据的校验位比对,一致则说明数据接收正确。

来源:果果小师弟

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月17日
下一篇 2021年6月17日

相关推荐