各位大虾,我在XPE启动时自动运行一个VC编译的程序,这个程序用到了MSCOMM控件,对串口进行操作,程序启动时打开串口。结果发现程序启动时有时会报Port already Open这个错误,不过频率不高,大概10次里有1次会报。
我不知道是怎么回事,是不是XPE系统刚启动的时候串口不允许操作还是怎么的,请各位指教,谢谢。
程序启动代码如下:
GetDlgItem(IDC_MSCOMM1)->ShowWindow(FALSE);//串口控件ID=IDC_MSCOMM1
m_SerialCom.SetCommPort(1);//串口控件变量名m_SerialCom
m_SerialCom.SetInputMode(1); //hex mode
m_SerialCom.SetSettings("9600,E,8,1");
m_SerialCom.SetRThreshold(20);
m_SerialCom.SetInBufferSize(1024);
m_SerialCom.SetOutBufferSize(1024);
m_SerialCom.SetInBufferCount(0); //clear buffer
if(m_SerialCom.GetPortOpen() == TRUE)
{
m_SerialCom.SetPortOpen(FALSE);
}
m_SerialCom.SetPortOpen(TRUE);
if(m_SerialCom.GetPortOpen()==FALSE)
{
AfxMessageBox("Com1 Open Error !");
return;
}