标题:串口接收数据并弹窗,在不同电脑运行不同
作者:donglaile
日期:2016-11-10 12:21
内容:
使用qextserial写一个串口程序,在接收到数据后,进入到readyread信号连接的槽函数进行数据解析,并在此弹出一个QDialog提示窗口。
在我的电脑运行没有任何问题,放到另一台电脑运行,接收到串口数据并弹出窗口,再关闭弹出窗口后就导致cpu占用率超过50%,软件也变得非常卡,ui界面切换时,界面不刷新,这时通过串口随便发送一个数据给软件,又恢复正常。请问大家这是什么原因?
初始化程序
void SerialProtocol::initSerial()
{
mPort = new QextSerialPort(mComName,QextSerialPort::EventDriven);
mPort->setBaudRate((BaudRateType)BAUD19200);
mPort->setDataBits(DATA_8);
mPort->setParity(PAR_NONE);
mPort->setStopBits(STOP_1);
mPort->setFlowControl(FLOW_OFF);
mIsOpen = mPort->open(QIODevice::ReadWrite);
if(!mIsOpen){
return;
}
qDebug() exec();
delete dl;
}
#1 [tmxfh 11-29 12:12]
可考虑一下在弹出后,暂停工作线程试试。估计在弹出窗口后,线程被阻塞