mscomm控件 串口通信 数据掉帧
大家好,我最近在用mscomm控件做串口通信,但是数据在收发过程中会出现数据掉帧现象。从上位机往下位机发数据的时候,某一帧数据在下位机收不到。我的数据是用modbus协议写的,请问大家有什么好意见吗?
贴一下 发送数据的代码
void CGKtDlg::OnReadregister(void)
{
BYTE buff[256];
CString temp;
CByteArray arraySend;
memset(buff, 0x00, 255);
Sleep(100);
buff[0]=0x01;
buff[1]=0x03;
buff[2]=0x00;
buff[3]=0x0A;
buff[4]=0x00;
buff[5]=0x02;
USHORT CRC=MBCRC16((UCHAR *)buff,6);//CRC校验
buff[6]=(CHAR)(CRC & 0xFF);
buff[7]=(CHAR)((CRC & 0xFF00)>>8);
arraySend.RemoveAll();
arraySend.SetSize(8);
m_txd="";
for(int i=0;i<8;i++)
{
arraySend.SetAt(i,buff[i]);
}
m_Comm.put_Output(COleVariant(arraySend));
for(int i=0;i<8;i++)
{
BYTE bt=*(char *)(buff+i);
temp.Format(_T("%02X "),bt);
m_txd+=temp;
}
m_txd+="\r\n";
int LineNum=TXD.GetLineCount();
if(LineNum<=14)
{
TXD.SetSel(-1,-1);
TXD.ReplaceSel(m_txd);
}
else
{
TXD.SetSel(0,-1);
TXD.Clear();
TXD.SetSel(-1,-1);
TXD.ReplaceSel(m_txd);
}
}