编一界面,用的vc,用comm传输,界面跑的时候老是卡,就卡一两秒,接着就跑,卡的过程中导致丢数,请大虾们指教!!!谢谢!!!
//timeout这样设置:
m_Timeouts.ReadIntervalTimeout = 0XFFFFFFFF;
m_Timeouts.ReadTotalTimeoutMultiplier = 0;
m_Timeouts.ReadTotalTimeoutConstant = 0;
m_Timeouts.WriteTotalTimeoutMultiplier = 0;
m_Timeouts.WriteTotalTimeoutConstant = 0;
//timeout这样设置:
m_Timeouts.ReadIntervalTimeout = 0XFFFFFFFF;
m_Timeouts.ReadTotalTimeoutMultiplier = 0;
m_Timeouts.ReadTotalTimeoutConstant = 0;
m_Timeouts.WriteTotalTimeoutMultiplier = 0;
m_Timeouts.WriteTotalTimeoutConstant = 0;
丢数是不是缓冲区太小,等?
通常是分开的,初始化串口,和结束串口最好也是在线程中进行可以在线程中post消息至主窗口,用来更新数据
再google 多线程 线程间通信
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("打开成功"));