ModbusRTU协议中CRC校验码的算法
2016-10-17 10:07
441 查看
//生成crc校验码
private ushort Fun_CRC16(byte[] data, ushort length)
{
ushort reg_crc;
ushort s_crcchk;
s_crcchk = 0;
reg_crc = 0xFFFF;
int i = 0;
while ((length--) > 0)
{
reg_crc ^= data[i++];
for (s_crcchk = 0; s_crcchk < 8; s_crcchk++)
{
if ((reg_crc & 0x01) > 0)
{
reg_crc = (ushort)((reg_crc >> 1) ^ 0xa001);
}
else
{
reg_crc = (ushort)(reg_crc >> 1);
}
}
}
return reg_crc;
}
private ushort Fun_CRC16(byte[] data, ushort length)
{
ushort reg_crc;
ushort s_crcchk;
s_crcchk = 0;
reg_crc = 0xFFFF;
int i = 0;
while ((length--) > 0)
{
reg_crc ^= data[i++];
for (s_crcchk = 0; s_crcchk < 8; s_crcchk++)
{
if ((reg_crc & 0x01) > 0)
{
reg_crc = (ushort)((reg_crc >> 1) ^ 0xa001);
}
else
{
reg_crc = (ushort)(reg_crc >> 1);
}
}
}
return reg_crc;
}
相关文章推荐
- Modbus-RTU通讯协议中CRC校验码的计算步骤
- Modbus-RTU通讯协议中CRC校验码的计算步骤
- ModBus RTU协议CRC校验方式最简实现
- DSP做的modbus rtu 主从站协议
- ModBus RTU协议 16 位CRC校验方式最简实现
- ModBus RTU协议介绍及程序设计
- 【Modbus】 RTU CRC校验码计算方法
- Modbus TCP和Modbus Rtu协议的区别
- MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数
- Modbus TCP和Modbus Rtu协议的区别
- ModBus通信协议的【Modbus RTU 协议使用汇总】
- RS485 分时器 RS485输入模块 Modbus RTU协议
- MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
- Modbus TCP和Modbus Rtu协议的区别 转
- Modbus RTU协议说明
- Modbus协议的CRC校验码是高位在前还是低位在前的问题
- 关于modbus rtu协议的CRC(循环冗余校验)在线计算
- Modbus RTU 协议使用汇总
- DSP做的modbus rtu 主从站协议
- MODBUS ASCII和RTU两种模式的区别、优缺点