本帖最后由 caiwei_cs 于 2014-7-28 15:47 编辑
Windows下qt4.8,使用QextSerialBase,qextserialenumerator,win_qextserialport 我调用以下函数:
已定义 Win_QextSerialPort*pSerPort;
boolCSerialPort:: open(int comNumber) { if(pSerPort->isOpen() == FALSE) { pSerPort->setPortName("com"+QString::number(comNumber)); return pSerPort->open(QIODevice::ReadWrite); }else{ pSerPort->close(); return FALSE; } } 在明明没有连接串口的情况下(串口都没连机子),就是pSerPort->isOpen()应该为false的时候,偶尔貌似会产生错误判断,进入else,进而操作pSerPort->close();程序卡死。 请问是什么原因,是我程序的原因么?应该如何处理。 我在else里面,又加了一次判断。 if(pSerPort->isOpen()== FALSE){ pSerPort->close();} 就很少会出错了。
|