如何断开串口
Posted
技术标签:
【中文标题】如何断开串口【英文标题】:How disconnect serial port 【发布时间】:2020-08-17 18:58:17 【问题描述】:我正在使用 Qt 上的接口工作,我已与电子板连接,一切都很好,问题是我想断开串行端口,但我不能。我试过这个
electronic_board.clear();
和
if(electronic_board.isOpen())
electronic_board.close();
但没用。
connectios是这个
bool Init()
Q_FOREACH(QSerialPortInfo port, QSerialPortInfo::availablePorts())
electronic_board.setPortName(port.portName());
electronic_board.setBaudRate(115200);
electronic_board.setDataBits(QSerialPort::Data8);
electronic_board.setParity(QSerialPort::NoParity);
electronic_board.setStopBits(QSerialPort::OneStop);
electronic_board.setFlowControl(QSerialPort::NoFlowControl);
try
if(electronic_board.isOpen())
electronic_board.close();
if(electronic_board.open(QIODevice::ReadWrite))
char arr[1] = 'O';
QByteArray Iniciar(arr,1);
electronic_board.write(Iniciar);
electronic_board.waitForBytesWritten(500);
QThread::msleep(30);
electronic_board.waitForReadyRead(100);
QByteArray requestData;
int i = 0;
while (requestData.length() != 1)
QThread::msleep(10);
requestData = electronic_board.readAll();
if(i++ >= 30)
break;
if(requestData[0] == 'K')
return true;
catch (...)
return false;
连接正确,也用这个
connect(&electronic_board,&QSerialPort::readyRead,this, frame_available);
那么,我怎样才能断开串口? 有人可以帮助我吗?
【问题讨论】:
请详细说明您遇到的问题的性质。串行端口太简单,无法连接和断开。如果没有人拔掉电线,则始终连接一个串行端口,如果它被拔掉,则端口通常无法知道。通常你能做的最好的就是打开和关闭,看起来你正在这样做。 【参考方案1】:我认为你用来关闭串行端口的代码有效,但你从来没有为列表的最后一个串行端口调用它。
【讨论】:
以上是关于如何断开串口的主要内容,如果未能解决你的问题,请参考以下文章