Qt QSerialport 未插入设备未关闭
Posted
技术标签:
【中文标题】Qt QSerialport 未插入设备未关闭【英文标题】:Qt QSerialport unpluged device not close 【发布时间】:2018-10-28 06:15:37 【问题描述】: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";
【问题讨论】:
以文字而非图片的形式提供您的代码 嗨,欢迎来到堆栈溢出。请参阅How to Ask 链接以获取有关如何提出问题并相应更新您的问题的更多详细信息。 【参考方案1】:拔掉插头时可能会发出error
SIGNAL
,所以连接error
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();
【讨论】:
以上是关于Qt QSerialport 未插入设备未关闭的主要内容,如果未能解决你的问题,请参考以下文章
如何使 Qt5.13.1 中的 QSerialPort 工作?