找回密码
 立即注册
收起左侧

串口操作的时候会以为错误判断卡住

3
回复
6417
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2014-7-28 15:45:37 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 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();}
就很少会出错了。

最佳答案

查看完整内容

按理说你加的那个if判断应该是不起作用的。
回复

使用道具 举报

累计签到:595 天
连续签到:1 天
2014-7-28 15:45:38 显示全部楼层
按理说你加的那个if判断应该是不起作用的。
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-7-29 09:00:27 显示全部楼层
自己顶一个。:)
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-7-30 09:08:37 显示全部楼层
sywh 发表于 2014-7-29 13:55
按理说你加的那个if判断应该是不起作用的。

对啊,但是确实会误判。我加了以后就很少会卡死了。奇怪。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了