• 3171阅读
  • 0回复

串口线程中一个奇怪的问题! [复制链接]

上一主题 下一主题
离线tgvlcw
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-08
定义了一个主窗口,主窗口里主要有一个打开串口,关闭串口和发送按钮。然后将串口的操作写在一个线程里,用到了qt的串口类。在线程里有一个奇怪的问题,看代码:
void WorkThread::run()

{

    openSerial();

        while(serialFlag)

    {
        //qDebug() << "-----------------------------------------";

        if( send )

        {

            port->write(data, datalen);

            send = false;

        }

    }


}
编译通过运行后,按打开串口按钮,然后在按关闭串口按钮,主窗口正常。现将以上代码中注销
掉的qDebug() << "-----------------------------------------";加入代码中后:
void WorkThread::run()
{
    openSerial();
        while(serialFlag)
    {
        qDebug() << "-----------------------------------------";
        if( send )
        {
            port->write(data, datalen);
            send = false;
        }
    }
}
然后编译运行,在主窗口中按下打开串口,在按下关闭按钮后,这时主窗口就死了,不动了!不知道
为什么,望高手解答!
快速回复
限100 字节
 
上一个 下一个