首页 » 网站推广 » phpexec串口技巧_干货若何运用串口接收数据并实时绘制曲线

phpexec串口技巧_干货若何运用串口接收数据并实时绘制曲线

访客 2024-11-25 0

扫一扫用手机浏览

文章目录 [+]

```cpp

#include <QApplication>

phpexec串口技巧_干货若何运用串口接收数据并实时绘制曲线

#include <QtCharts/QChartView>

phpexec串口技巧_干货若何运用串口接收数据并实时绘制曲线
(图片来自网络侵删)

#include <QtCharts/QLineSeries>

#include <QtSerialPort/QSerialPort>

#include <QtCore/QDebug>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char argv[])

{

QApplication a(argc, argv);

// 创建串口工具

QSerialPort serial;

serial.setPortName("COM1"); // 设置串口号

serial.setBaudRate(QSerialPort::Baud9600); // 设置波特率

if (!serial.open(QIODevice::ReadOnly)) {

qDebug() << "无法打开串口";

return 1;

}

// 创建曲线和图表视图

QLineSeries series = new QLineSeries();

QChart chart = new QChart();

chart->addSeries(series);

chart->createDefaultAxes();

chart->setTitle("实时曲线");

chart->legend()->hide();

QChartView chartView = new QChartView(chart);

chartView->setRenderHint(QPainter::Antialiasing);

// 创建定时器,用于定时更新曲线

QTimer timer;

QObject::connect(&timer, &QTimer::timeout, [&]() {

if (serial.bytesAvailable()) {

QByteArray data = serial.readAll();

int value = static_cast<unsigned char>(data.at(0));

series->append(series->count(), value);

}

});

timer.start(100); // 每100毫秒更新一次曲线

// 显示窗口

chartView->resize(800, 600);

chartView->show();

return a.exec();

}

```

在这个示例中,我们创建了一个`QSerialPort`工具来建立串口连接,并通过串口吸收数据。
然后,我们利用`QLineSeries`和`QChart`来创建曲线和图表视图。
定时器被用来定时读取串口数据,并将数据添加到曲线上。
末了,我们利用`QChartView`来显示图表。

请把稳,在运行此示例之前,请确保已精确设置串口号和波特率,并根据您的须要进行相应的变动。

标签:

相关文章