Qt 上位机示波器,采用串口通信,主要包括QThread,QtChart,QSerialPort,QSerialPortInfo

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=1042209https://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

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值