我正在尝试从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);
}
....

这就是我尝试将串行数据更改为double的方式:
serial.readData();

最佳答案

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

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

double value;
stream>>value

关于c++ - 在Qt Creator中将串行数据从QSerialPort提取为double的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24297607/

10-13 08:22