设置串行口参数时,程序挂起的问题

hustxsh   2008-4-9 09:47 楼主
在做串口程序时,使用USB转串口数据线与MODEM相连,
打开串口后使用SetCommState函数设置串口参数。

程序初始化时,打开并设置串口参数,没有任何问题。

现在要考虑USB被扒出再插上的异常情况。使用子线程将串口
关闭后再打开,之后进行参数设置时,程序执行到
SetCommState时有时会挂起(有时不会),再将USB被扒
出才能执行下一条语句。代码如下,
       
        // 设定串行口参数
        if (!SetCommState(m_hComm, &dcb))
        {
                TRACE(_T("Failed in call to SetCommState\n"));
                AfxThrowSerialException();

                return FALSE;
        }
        return TRUE;

问:这种情况有是不是USB数据线没插好引起的?
但函数SetCommState会什么会挂起,而不返回FALSE或TRUE呢?

回复评论 (4)

什么呀
点赞  2008-5-1 14:20
接分先!
点赞  2008-5-1 19:19
转到VC中去提问吧
点赞  2008-5-16 08:43
我的情况看来和你的有点差不多的情况。
我用的笔记本电脑通过并口连着这一台进口的系统,运行着这个设备的软件系统。同时我也运行着我自己设备的软件系统,是通过U口连接的,如果两个程序同时运行我的程序经常会出现串口管教变化的事件,串口就关闭掉了。
请问你知道如何解决么
点赞  2008-5-17 17:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复