标题:Qt串口问题
作者:winston_zbb
日期:2020-12-25 11:18
内容:
各位老师,使用QT编写与仪表串口通讯,每隔10ms读写数据。但是联网的时候,每当刷新网页完成,串口会中断,什么原因?有什么解决办法么?
程序代码:
serial = new QSerialPort();connect(timer,SIGNAL(timeout()),this,SLOT(custom_timeout()));connect(serial,SIGNAL(errorOccurred(QSerialPort::SerialPortError)),this,SLOT(custom_error(QSerialPort::SerialPortError)));timer->start(1);serial->setPortName("COM5");serial->setBaudRate(115200);serial->setDataBits(QSerialPort::Data8);serial->setStopBits(QSerialPort::OneStop);serial->setFlowControl(QSerialPort::NoFlowControl);serial->setParity(QSerialPort::EvenParity);
if(!serial ..
#1 [liudianwu 12-26 08:42]
刷新网页是怎么回事?你不是串口通信吗?
#2 [九重水 12-26 10:17]
代码真乱……
麻烦楼主清晰地再讲一遍遇到的问题。
另外问一下楼上的,上海房租多少钱一般,一房一厅或单间,单身汉住的那种。 @liudianwu
#3 回 九重水 的帖子 [liudianwu 12-27 08:57]
九重水:代码真乱……
麻烦楼主清晰地再讲一遍遇到的问题。
另外问一下楼上的,上海房租多少钱一般,一房一厅或单间,单身汉住的那种。 @liudianwu (2020-12-26 10:17)
你住不起
#4 [fsu0413 12-27 10:39]
serial = new QSerialPort();
connect(timer, SIGNAL(timeout()), this, SLOT(custom_timeout()));
connect(serial, SIGNAL(errorOccurred(QSerialPort::SerialPortError)), this,
SLOT(custom_error(QSerialPort::SerialPortError)));
timer->start(1);
serial->setPortName("COM5");
serial->setBaudRate(115200);
serial->setDataBits(QSerialPort::Data8);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
serial->setParity(QSerialPort::EvenParity);
if (!serial->isOpen()) {
if (serial->open(QIODevice::ReadWrite)) {
ui->textEdit->append("1");
} else {
ui->textEdit->append("2");
}
} else
ui->textEdit->append("3");
帮楼主格式化了一下。
你代码跑在网页上的吗?要不是的话和网页刷新有什么关系么
#5 回 fsu0413 的帖子 [九重水 12-28 09:35]
fsu0413:serial = new QSerialPort();
connect(timer, SIGNAL(timeout()), this, SLOT(custom_timeout()));
connect(serial, SIGNAL(errorOccurred(QSerialPort::SerialPortError)), this,
SLOT(custom_error(QSerialPort::SerialPortErr .. (2020-12-27 10:39)
即使不是跑网页上,也是跟网页刷新的联动了。
楼主用QSerialPort类,在刷新网页时,整个serial被摧毁了,自然而言断开了连接。
这种情况下需要重连机制,但是跟串口弄到一起感觉非常违和。
还是弄个‘长连接’吧。
@liudianwu,住不起,求照顾。有沙发吗?我可以的。