1.首先自定义CRC校验函数
private UInt16 Crc_Check(byte[] Data, byte DataLEN)
{
UInt16 CRC = 0xFFFF;
for (byte i = 0; i < DataLEN; i++)
{
CRC ^= Data[i];
for(byte j = 0; j < 8; j++)
{
if((CRC & 0x0001) == 0x0001)
{
CRC = (UInt16)((CRC >> 1) ^ 0xA001);
}
else
{
CRC = (UInt16)(CRC >> 1);
}
}
}
CRC = (UInt16)((CRC >> 8) + (CRC<<8));
return CRC;
}
2.在HEX发送函数中增加CRC缓存数组变量声明
byte[] Calculate_CRC = new byte[(Buf.Length - Buf.Length % 2) / 2];//CRC缓存区
Calculate_CRC[i] = data[0];//CRC参数赋值