Qt 上位机示波器,采用串口通信,主要包括QThread,QtChart,QSerialPort,QSerialPortInfo
本文在设计时,主要参考了B站的几位UP主的视频
《用QT做点什么》-3-QT串口开发入门(上)_哔哩哔哩_bilibiliQT---串口。cc某盘链接:https://pan.baidu.com/s/1Bufl77OpgearE8kNinNcXQ 提取码:d3cjhttps://www.bilibili.com/video/BV1vJ411c7Hk?p=4C++(Qt)期末大作业——上位机调试助手,包括串口调试,波形绘制和FFT/IFFT_哔哩哔哩_bilibili这个是C++(Qt)的期末大作业,是一个上位机调试助手,整个界面的布局仿照野火的多功能调试助手。该上位机包括三个部分,串口调试、波形绘制和FFT/IFFT,其中串口调试是最初的想法,波形绘制是学了绘图之后加上去的,FFT/IFFT想法来自2021年电赛国赛A题,我们队做的就是这题,当时花了很多时间在FFT上,不断重复FFT、打印、matlab绘图、查看波形这几个步骤,于是有了这个想法。现在这个是期
https://www.bilibili.com/video/BV1Wb4y147kE《Qt 5.9 C++开发指南》2021_哔哩哔哩_bilibili[置顶]C++就业大礼包(包含本课程PPT,源码,以及相关安装资源):https://ke.qq.com/course/package/47880?flowToken=1042209
https://www.bilibili.com/video/BV1AX4y1w7Nt?p=65
这篇文章只是个人的学习的一次小总结,没有源码,因为整个项目我还在进一步的优化设计中,文中贴出的代码是设计的部分内容。
后期还会继续更新QT上位机的设计,计划采用QCustomPlot和以太网接口代替前面的QChart和串口设计上位机,还有整体的界面,包括文件系统,API等功能。
ui界面设计
mainwindow.h
相关变量声明
//Serial Port*******************************************************
//Configuration
QSerialPort mSerialPort;
QString mPortName;
QString mBaudRate;
QString mParity;
QString mDataBits;
QString mStopBits;
bool mIsOpenSerial = false;
//Timer uesd to update serial port
QTimer timer;
void scanPorts();
void serialPortUpdate();
//read and send data
void readSerialData();
void sendSerialData(QByteArray &sendData);
//data process***********************************************************
//buffer
QByteArray mReadBuf;
QByteArray mSendBuf;
//ASCII or Hex
bool ASCII = false;
QByteArray getReadBuf();
void clearReadBuf();
QByteArray hexStringToByteArray(QString HexString);
//Input ***********************************************************
int Vin = 0;
int freq = 0;
//Display***********************************************************
//QChart
QChart *chart;
QLineSeries *series0;
QLineSeries *series1;
QValueAxis *axisX;
QValueAxis *axisY;
QLineSeries *curSeries;
QValueAxis *curAxis;
int mStep;
QPen pen;
int chartMode = 0;
bool stopDisplay = false;
//ini chart
void createChartA();
void prepareDataA();
//read data to chart
int bufIndex = 0;
float buf[1024];
QList<QPointF> chartData;
void readDatatoChartA();
//thread*********************************************
ComThread threadA;
bool getSerialPortConfig();
mainwindow.cpp
初