什么是正确的语法提取串行数据从QSerialPort到双Qt Creator

What is the correct syntax to extract serial data from QSerialPort to a double in Qt Creator?

本文关键字:数据 QSerialPort 到双 Creator Qt 提取 语法 什么      更新时间:2023-10-16

我正在尝试从arduino实时流数据。下面是我如何设置串行端口:

QSerialPort serial;
QByteArray value0;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    serial.setPortName("COM3");
    serial.setBaudRate(QSerialPort::Baud9600);
    serial.setDataBits(QSerialPort::Data8);
    serial.setParity(QSerialPort::NoParity);
    serial.setStopBits(QSerialPort::OneStop);
    serial.setFlowControl(QSerialPort::NoFlowControl);
    serial.open(QIODevice::ReadWrite);
}
....

这就是我如何尝试将串行数据更改为双精度:

serial.readData();

您应该根据您的设备逻辑将原始字节数组转换为double。但是,如果您通过流式传输将数据发送到另一端,则可以通过以下方式读取:

QByteArray data = serial->readAll();
QDataStream stream(data);
double value;
stream>>value