2

我正在尝试编写一个简单的程序来测试串行端口,但无法让 QSerialPort 工作。我从来没有收到来自 QSerialPort 对象的信号。我收到 3 个运行时警告/错误,我认为这可能与它有关。

错误是:

QApplication::qAppName: Please instantiate the Qapplication object first
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread

下面的代码片段是我可以提供的用于重新创建错误的最小示例,它没有显示连接信号,但我认为这些错误是我看不到它们的原因。如果我不调用 open 函数,则不会发生任何错误。

#include <QtGui/QApplication>
#include <QSerialPort>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    PowerBoardGUI w;
    w.show();

    QSerialPort* serial = new QSerialPort();


    serial->setPortName("/dev/ttyS1");
    serial->setBaudRate(QSerialPort::Baud9600);

    bool isOpen = serial->open(QIODevice::ReadWrite);
    serial->close();
    delete serial;


    return a.exec();
}

测试系统是Redhat 5.6。QT 4.7.4 的静态版本。以及最新版本的 QSerialPort(今天从 GIT 构建)。

4

0 回答 0