BYTE m_RecBuff[100];
LONG CSifuDlg::OnComm(WPARAM ch, LPARAM port) //接收数据
{ int count=0; //设置计数
if(m_bConnect) //串口是否连接
{
m_RecBuff[count] +=(BYTE)ch; //接收数据暂存
count++;
if(count=11)
{
if(m_RecBuff[0] = 0xAA) //判断是否为帧头
{
sifu1.m_bDistance=(UINT)(m_RecBuff[2]<<8)+(UINT)(m_RecBuff[1]);//数据的低位和高位传给编辑框变量
sifu1.m_bAziUnderShoot=(UINT)(m_RecBuff[4]<<8)+(UINT)(m_RecBuff[3]);
sifu1.m_bHiloUnderShoot=(UINT)(m_RecBuff[6]<<8)+(UINT)(m_RecBuff[5]);
sifu1.m_bAziWatchAngel=(UINT)(m_RecBuff[8]<<8)+(UINT)(m_RecBuff[7]);
sifu1.m_bHiloWatchAngel=(UINT)(m_RecBuff[10]<<8)+(UINT)(m_RecBuff[9]); CString stra; //界面显示接收到的目标数据
stra.Format("%d",sifu1.m_bDistance);
m_cDistance.SetWindowText(stra);
CString strb;
strb.Format("%d",sifu1.m_bAziUnderShoot);
m_cAziUnderShoot.SetWindowText(strb);
CString strc;
strc.Format("%d",sifu1.m_bHiloUnderShoot);
m_cHiloUnderShoot.SetWindowText(strc);
CString strd;
strd.Format("%d",sifu1.m_bAziWatchAngel);
m_cAziWatchAngel.SetWindowText(strd);
CString stre;
stre.Format("%d",sifu1.m_bHiloWatchAngel);
m_cHiloWatchAngel.SetWindowText(stre);
}
}
}
UpdateData(FALSE);
return 0;
}
我是用串口类SerialPort和使用控件编的,这样做接收串口发过来的目标数据,目标数据是用双字节表示,先传低位后传高位;最后用十进制从界面显示出来.不知道这样能否实现,如果不行,应该怎么做,希望指点!谢谢!
LONG CSifuDlg::OnComm(WPARAM ch, LPARAM port) //接收数据
{ int count=0; //设置计数
if(m_bConnect) //串口是否连接
{
m_RecBuff[count] +=(BYTE)ch; //接收数据暂存
count++;
if(count=11)
{
if(m_RecBuff[0] = 0xAA) //判断是否为帧头
{
sifu1.m_bDistance=(UINT)(m_RecBuff[2]<<8)+(UINT)(m_RecBuff[1]);//数据的低位和高位传给编辑框变量
sifu1.m_bAziUnderShoot=(UINT)(m_RecBuff[4]<<8)+(UINT)(m_RecBuff[3]);
sifu1.m_bHiloUnderShoot=(UINT)(m_RecBuff[6]<<8)+(UINT)(m_RecBuff[5]);
sifu1.m_bAziWatchAngel=(UINT)(m_RecBuff[8]<<8)+(UINT)(m_RecBuff[7]);
sifu1.m_bHiloWatchAngel=(UINT)(m_RecBuff[10]<<8)+(UINT)(m_RecBuff[9]); CString stra; //界面显示接收到的目标数据
stra.Format("%d",sifu1.m_bDistance);
m_cDistance.SetWindowText(stra);
CString strb;
strb.Format("%d",sifu1.m_bAziUnderShoot);
m_cAziUnderShoot.SetWindowText(strb);
CString strc;
strc.Format("%d",sifu1.m_bHiloUnderShoot);
m_cHiloUnderShoot.SetWindowText(strc);
CString strd;
strd.Format("%d",sifu1.m_bAziWatchAngel);
m_cAziWatchAngel.SetWindowText(strd);
CString stre;
stre.Format("%d",sifu1.m_bHiloWatchAngel);
m_cHiloWatchAngel.SetWindowText(stre);
}
}
}
UpdateData(FALSE);
return 0;
}
我是用串口类SerialPort和使用控件编的,这样做接收串口发过来的目标数据,目标数据是用双字节表示,先传低位后传高位;最后用十进制从界面显示出来.不知道这样能否实现,如果不行,应该怎么做,希望指点!谢谢!
{
if(m_RecBuff[0] = 0xAA) //判断是否为帧头????????
==========
if(count == 11)
{
if(m_RecBuff[0] == 0xAA) //判断是否为帧头