public class myCheack {
private static int[] i16CRCTalbeAbs = {
0x0000, 0xcc01, 0xd801, 0x1400, 0xf001, 0x3c00, 0x2800, 0xe401,
0xa001, 0x6c00, 0x7800,0xb401, 0x5000, 0x9c01, 0x8801, 0x4400};
public int Crc16_Check(byte[] uchMsg, int usDataLen)
{
int i16Crc;
int i;
byte byTmp;
if (uchMsg == null) return (0);
i16Crc = 0xffff;
for (i = 0; i < usDataLen; i++)
{
byTmp = uchMsg[i];
i16Crc = (int)(i16CRCTalbeAbs[(byTmp ^ i16Crc) & 15] ^ (i16Crc >> 4));
i16Crc = (int)(i16CRCTalbeAbs[((byTmp >> 4) ^ i16Crc) & 15] ^ (i16Crc >> 4));
}
i16Crc = (int)(((i16Crc >> 8) & 0x00ff) | ((i16Crc << 8) & 0xff00));
return (i16Crc);
}
}
MDBUS_CRC16
最新推荐文章于 2023-12-15 16:18:14 发布