编一界面,用的vc,用comm传输,界面跑的时候老是卡,就卡一两秒,接着就跑,卡的过程中导致丢数,请大虾们指教!!!谢谢!!!
//timeout这样设置: 
m_Timeouts.ReadIntervalTimeout   =  0XFFFFFFFF; 
m_Timeouts.ReadTotalTimeoutMultiplier   =   0; 
m_Timeouts.ReadTotalTimeoutConstant   =   0; 
m_Timeouts.WriteTotalTimeoutMultiplier   =   0; 
m_Timeouts.WriteTotalTimeoutConstant   =   0; 

解决方案 »

  1.   

    开始就进行COMM读写了吗,才导致卡?
    丢数是不是缓冲区太小,等?
      

  2.   

    google 一下 csdn blog llbird cnComm这个类,我在编写串口程序时经常使用,写得很不错,认真分析一下,串口编程不精通也难。
      

  3.   


    通常是分开的,初始化串口,和结束串口最好也是在线程中进行可以在线程中post消息至主窗口,用来更新数据
      

  4.   


    再google 多线程 线程间通信
      

  5.   

    看看llbird的cnComm吧,他的demo很详细,blog上的介绍文章也很详细。
      

  6.   

    //设置超时参数
    GetCommTimeouts((*temphand).hComm,&CommTimeOuts);
    CommTimeOuts.ReadIntervalTimeout=1; //接收字符间最大时间间隔;原值100
    CommTimeOuts.ReadTotalTimeoutMultiplier=1;
    CommTimeOuts.ReadTotalTimeoutConstant=1; //读数据总超时常量;原值100
    CommTimeOuts.WriteTotalTimeoutMultiplier=10;
    CommTimeOuts.WriteTotalTimeoutConstant=5;
    if(!SetCommTimeouts((*temphand).hComm,&CommTimeOuts))
    {
    AfxMessageBox(_T("无法设置超时参数!"));
    ClosePort(temphand);
    return FALSE;
    }
    //AfxMessageBox(_T("打开成功"));