C# Modbus CRC校验

Modbus CRC校验,直接输入byte[],输出bool

        public static bool CRC_Check(byte[] byteData){bool Flag = false;byte[] CRC = new byte[2];UInt16 wCrc = 0xFFFF;for (int i = 0; i < byteData.Length-2; i++){wCrc ^= Convert.ToUInt16(byteData[i]);for (int j = 0; j < 8; j++){if ((wCrc & 0x0001) == 1){wCrc >>= 1;wCrc ^= 0xA001;}else{wCrc >>= 1;}}}CRC[1] = (byte)((wCrc & 0xFF00) >> 8);CRC[0] = (byte)(wCrc & 0x00FF);      if (CRC[1] == byteData[byteData.Length - 1]&& CRC[0] == byteData[byteData.Length - 2]){Flag = true;}return Flag;}

调用

            byte[] Hex = new byte[8] { 0x01, 0x03, 0x00, 0x2A, 0x00, 0x02, 0xE5, 0xC3 };if (CRC_Check(Hex)){//你的代码}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部