就是紅色這段呼叫,干什么的,對cmdGetPalam這個集做了什么操作?
void CComToKeyBoardDlg::OnBnClickedButton8()
{
// TODO: 在此添加控制元件通知處理程式代碼
char cmdGetPalam[20] = {0x01,0x04,0x00,0x00,0x00,0x10,0xB0,0x13};
CString str;
//int temp;
unsigned short crcResult;
if(bFlagComm)
{
GetDlgItem(IDC_EDIT2)->GetWindowTextA(str);
Address = _ttoi(str);
cmdGetPalam[0] = Address;
RcvIdentCode = 0x81;
crcResult = MBCRC16((unsigned char*)cmdGetPalam,6);
cmdGetPalam[6] = crcResult;
cmdGetPalam[7] = crcResult>>8;
m_ComPort[0].WriteToPort(cmdGetPalam,8);
WaitForSingleObject(m_handle,200);
m_ComPort[0].WriteToPort(cmdGetPalam,8);
WaitForSingleObject(m_handle,200);
m_ComPort[0].WriteToPort(cmdGetPalam,8);
WaitForSingleObject(m_handle,500);
m_ComPort[0].WriteToPort(cmdGetPalam,8);
bFlagCollecting = true;
}
else
{
MessageBox("串口沒有打開!");
}
//-----------------------------
}
unsigned short CComToKeyBoardDlg::MBCRC16(unsigned char *pucFrame, unsigned short usLen)
{
unsigned char ucCRCHi = 0xFF;
unsigned char ucCRCLo = 0xFF;
int iIndex;
while( usLen-- )
{
iIndex = ucCRCLo ^ *( pucFrame++ );
ucCRCLo = ( UCHAR )( ucCRCHi ^ aucCRCHi[iIndex] );
ucCRCHi = aucCRCLo[iIndex];
}
return ( unsigned short )( ucCRCHi << 8 | ucCRCLo );
}
uj5u.com熱心網友回復:
查表法計算crc檢驗值吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/86013.html
標籤:C語言
上一篇:求問關于指標檔案的問題
