谁给提供个可用的MODBUS RTU 半字节CRC校验程序,谢谢

2020-02-09 09:19发布

谁给提供个可用的MODBUS RTU 半字节CRC校验程序,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
ccxlslr
2020-02-09 13:05
MODBUS_WORD modbus_crc16(MODBUS_BYTE *dp, MODBUS_UINT datalen)
{
    MODBUS_WORD crc;
    MODBUS_WORD i, j;
   
    crc = 0xffff;
    for (i = datalen; i > 0; i--)
    {
        crc ^= (MODBUS_WORD)(*dp++);
        for (j = 0; j < 8; j++)
        {
            if(crc & 1)
            {
                crc >>= 1;
                crc ^= 0xa001;
            }
            else
            {
                crc >>= 1;
            }
        }
    }
   
    return crc;
}

一周热门 更多>