关于qt:Arduino和QtSerialPort打开始终为false

Arduino and QtSerialPort opening always false

我正在尝试将arduino与qt 5.1的qserialport连接,但是如果有人知道另一种方法或其他库或建议使其工作,则open的方法总是返回false值,请让我知道XD我不知道这里的源代码有什么问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include"mainwindow.h"
#include"ui_mainwindow.h"



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->serial = new QSerialPort(this);
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
           qDebug() <<"Name        :" << info.portName();
           qDebug() <<"Description :" << info.description();
           qDebug() <<"Manufacturer:" << info.manufacturer();

           this->serial->setPort(info);

    }
       if(this->serial->open(QIODevice::ReadWrite)){

        serial->setBaudRate(QSerialPort::Baud9600);
        serial->setDataBits(QSerialPort::Data8);
        serial->setParity(QSerialPort::NoParity);
        serial->setStopBits(QSerialPort::OneStop);
        serial->setFlowControl(QSerialPort::NoFlowControl);
        QObject::connect(&serial,SIGNAL(readyRead()),this,SLOT(serialReceived()));
    }else{
           qDebug() <<"Couldn't open port";

    }

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::serialReceived(){
    serial->readAll();
}


尝试一下:

main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <QtSerialPort/QtSerialPort>
#include <iostream>

int main()
{
    QSerialPort serialPort;
    serialPort.setPortName("yourportpath"); // Hard code it for a test
    if (!serialPort.open(QIODevice::ReadOnly)) {
        std::cout <<"Error:" << serialPort.error() << std::endl;
        return 1;
    }

    return 0;
}