【发布时间】:2014-08-20 09:08:44
【问题描述】:
QSerialPort *serial;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
serial = new QSerialPort(this);
serial->setPortName("/dev/ttyUSB0");
serial->setBaudRate(QSerialPort::Baud9600);
serial->setStopBits(QSerialPort::OneStop);
serial->setParity(QSerialPort::NoParity);
serial->setDataBits(QSerialPort::Data8);
serial->setFlowControl(QSerialPort::NoFlowControl);
serial->open(QIODevice::ReadWrite);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(serialReceived()));
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(serialSent()));
}
MainWindow::~MainWindow()
{
delete ui;
serial->close();
}
void MainWindow::serialReceived()
{
ui->label->setText(serial->readAll());
}
void MainWindow::serialSent()
{
QByteArray bytes;
serial->write(bytes);
}
从这段代码中,我在 Ubuntu 上运行了 qt。它显示 QIOdevice::write 设备未打开。但是我已经在这个端口上插入了我的 USB 到串口,我该如何解决这个问题。
【问题讨论】:
-
你试过qt串口通信的例子吗?有一些示例展示了如何枚举设备并提出可用的设备。
-
你忽略了所有类型的错误检查。如果不检查这些,您将不会继续。
-
您可以使用 minicom 或类似设备连接到您的设备吗?您确定它已连接且可用吗?您可以使用以下命令枚举可用端口: QList
ports = QSerialPortInfo::availablePorts(); qDebug() -
连接可用,现在可以使用了,我使用命令作为 chmod 777 ./my port 再次感谢您
-
@user297475: 你在像“uucp”这样的正确组吗?
标签: c++ qt ubuntu-13.10 qtserialport