private byte [] GetCRC( byte [] byteData)
{
byte[] CRC= new byte[2];
UInt16 wCrc =0xFFFF;
for(int i=0; i< byteData.Length ; 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); //低位在前
return CRC;
}
}
ModBus RTU协议CRC校验方式最简实现
最新推荐文章于 2025-09-13 15:30:32 发布
本文详细介绍了如何实现ModBus RTU协议的CRC校验过程,通过一个简洁的C#代码示例,展示了如何计算CRC值并转换为高低字节。此过程涉及对数据字节进行位操作,异或多项式0xA001,并最终得到CRC字节序列。
1万+

被折叠的 条评论
为什么被折叠?



