十万火急,mscomm串口接收问题
m_ctrMSCom.SetCommPort(m_port + 1);//设置串口号CString strParam="9600,N,8,1";//定义通信参数变量
m_ctrMSCom.SetSettings(strParam);//设置串口通信参数
m_ctrMSCom.SetOutBufferSize(1024);//设置发送缓冲区大小为512字节
m_ctrMSCom.SetInBufferSize(1024);//设置接收缓冲区大小为1024字节
m_ctrMSCom.SetInBufferCount(0);//清空接收缓冲区
m_ctrMSCom.SetInputMode(1);//设置串口数据读取方式为二进制
m_ctrMSCom.SetInputLen(0);//设置读取接收缓冲区中的所有数据
m_ctrMSCom.SetRThreshold(1);//设置接收缓冲区中有1个字符时响应OnComm事件
现在下位机发送的unsigned char类型的、是10的倍数的数据,然后我接收数据程序是这样的:
VARIANT m_input;
WORD *WVar;//2个字节
m_input=m_ctrMSCom.GetInput();//读取缓冲区内的数据
WVar=(WORD*)m_input.parray->pvData;
if((5<=*WVar) &&(*WVar<=255)&&(*WVar%10==0))
{
_itoa((int)(*WVar),str2,10);
m_stepTH.AddString(str2);
}
现在调试能接收到数据,但是数据的格式不对,就是不是10的倍数,各位帮忙看看吧,他们等着做实验用,急,谢谢了!