在嵌入式开发过程中,经常需要查看DSP/MCU内部变量的值,通常的做法是使用仿真器,或者通过DAC输出用示波器观察,本文介绍一种基于qt/qwt的软件示波器,DSP/MCU将内部变量的值通过串口发出,软件示波器收到以后以波形的形式显示。
1、安装QT5.8
从下面地址下载qt-opensource-windows-x86-mingw530-5.8.0.exe并安装:
http://download.qt.io/archive/qt/5.8/5.8.0/
安装完成后添加环境变量:
C:QtQt5.8.05.8mingw53_32in;C:QtQt5.8.0Toolsmingw530_32in
2、安装qwt-6.1.3
(1) 下载qwt6.1.3并解压,例如我电脑上是解压到I:QTqwt-6.1.3qwt-6.1.3:
https://sourceforge.net/projects/qwt/files/qwt/6.1.3/
(2) 开始->运行->powershell
(3) 进入qwt所在目录:
cd I:QTqwt-6.1.3qwt-6.1.3
(4) 运行qmake qwt.pro
(5) 运行qmake
(6) 运行mingw32-make.exe
(7) 运行 mingw32-make.exe install
(8) 将I:QTqwt-6.1.3qwt-6.1.3lib 下的*.dll文件复制到C:QtQt5.8.05.8mingw53_32in
(9) 将I:QTqwt-6.1.3qwt-6.1.3lib下的*.a文件复制到C:QtQt5.8.05.8mingw53_32lib
(10) 将C:Qwt-6.1.3pluginsdesigner下的所有文件复制到C:Qwt-6.1.3pluginsdesigner
(11) 将C:Qwt-6.1.3include下的所有文件复制到C:QtQt5.8.05.8mingw53_32includeqwt
其中qwt为新建文件夹,在qt程序中包含此文件夹。
3、 QT程序
(1) 新建QT程序并包含qwt相关头文件:
(2) 在ui中增加start/stop按钮,qwt plot控件等
(3) 为qwtplot控件设置背景网络,设置放大缩小的机制,设置曲线的颜 {MOD}等。
(4) 增加串口通信功能
示例程序中假设串口每1ms接收4个变量的值,每个变量2个字节,共8个字节。
每10ms从串口中读取接收到的数据并赋给QwtPlotCurve变量,再通过qwtplot显示。
示例程序下载地址:
https://pan.baidu.com/s/1mjUCXHe
4、 演示功能
为了演示示波器的功能,示例程序中模拟产生4个正弦波,并通过串口发送出去,如果将串口的Rx和Tx短接,串口将接收到发送出去的数据并在示波器上显示,效果如下图所示:
5、改进
读者可以根据自己的实际需要进行修改,例如增加光标,增加波形的保存和回放等功能。