MODBUS常用的CRC16校验函数实测可用

【MODBUS常用的CRC16校验函数实测可用】MODBUS常用的CRC16校验,多项式A001,代码实测可用。

#include //A001 unsigned int CRC16(unsigned char *buf,unsigned char length)//CRC16计算 { unsigned char i; unsigned int crc=0xFFFF; while(length--) for(crc^=*(buf++),i=0; i<8; i++) crc=(crc&0x0001)?(crc>>1)^0xA001:crc>>1; return crc; } int main () { printf("hello https://tool.lu/\n"); unsigned char a[8]={0xFF,0x17, 00, 00, 00, 01, 00, 00}; //待测数组 unsigned int b=0; b= CRC16(a,6); printf("\r\n 本次CRC校验结果是:0x%02x",b); return 0; }

    推荐阅读