我用MSCOMM编了一个小的串口测试程序,第一次使用这个控件,不知道这段程序出了什么问题,望高手指点哦,不管是语法还是控件使用方式上的错误都望指出啊,谢谢啦.
代码如下:
void CTestDlg::OnTest()
{
CByteArray mary;
mary.SetSize(4);
mary.SetAt(0,0x01);
mary.SetAt(1,0x10);
mary.SetAt(2,0xAA);
mary.SetAt(3,0xCC);
m_com.SetCommPort(1);
m_com.SetSettings("38400,n,8,1");
if(!m_com.GetPortOpen())
{
m_com.SetPortOpen(true);
}
m_com.SetOutput(COleVariant(mary));
Sleep(100);
CByteArray mIn;
COleVariant olevariant;
int num=m_com.GetInBufferCount();
olevariant=m_com.GetInput();
mIn.SetAt(0,((unsigned char*)olevariant.parray->pvData)[0]);
mIn.SetAt(1,((unsigned char*)olevariant.parray->pvData)[1]);
mIn.SetAt(2,((unsigned char*)olevariant.parray->pvData)[2]);
mIn.SetAt(3,((unsigned char*)olevariant.parray->pvData)[3]);
BYTE a=mIn[0];
BYTE b=mIn[1];
BYTE c=mIn[2];
BYTE d=mIn[3];
CString str;
str.Format("缓冲区字符数量:%d \n接收数据: %x %x %x %x",num,a,b,c,d);
MessageBox(str);
m_com.SetPortOpen(false);
}