qt 打开串口 UI卡死

imx6在qt中打开调试串口时,ui总是会卡死。调试串口已经被文件系统占用,而在qt的app中使用open函数却能够调用open函数,打开成功,造成ui卡死,并且调试串口也卡死。本文记录这个问题的解决方法。

   try {
       //查找/etc/inittab文件中,是否使用ttymxc0作为调试串口输出
       //如果是,就抛出异常,不打开串口
       ret = system("grep ttymxc0 /etc/inittab | grep  -v \"#\"");
       if (ret  == 0)
       {
           throw "Current port has been used by debug port!";
       }
       fd = open( "/dev/ttymxc0", O_RDWR|O_NDELAY);
       if (-1 == fd)
       {
           printf("open fail\n");
           ::close(fd);
           delete ui;
           return(-1);
       }
       else
       {
           printf("open ttymxc0 .....\n");
       }
   }
   catch (const char * msg){
        //显示警告信息
       QMessageBox::information(this, tr("warning"), msg);
	return 0;
   }

Tony Liu

2016-9-8, Shenzhen

posted @ 2016-09-08 16:06  SuperTao1024  阅读(2054)  评论(0编辑  收藏  举报