QSerialPort
无法在 rasbian 系统中关闭未插入的设备。任何方法关闭并重新连接端口。这段代码可以工作,但我很快拔掉并插入它就不起作用了。我认为连接插头时串行不会中断:
serial->close();
serial = new QSerialPort(this);
serial->setPortName("/dev/ttyUSB0");
serial->setBaudRate(QSerialPort::Baud115200);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
if(serial->open(QIODevice::ReadWrite)){
qDebug() << "Hata yok";
}
else {
qDebug() << "Hata var";
}
最佳答案
拔掉插头时可能会发出错误
SIGNAL
,因此将错误
SIGNAL
连接到SLOT
来处理它,如下所示:
QObject::connect(serial, SIGNAL(error(QSerialPort::SerialPortError)), this,
SLOT(handleError(QSerialPort::SerialPortError)));
void Widget::handleError(QSerialPort::SerialPortError error)
{
if (error == QSerialPort::ResourceError)
{
QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
serial->close();
}
}
关于c++ - Qt QSerialport拔出设备未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028882/