一直以来用的CRC校验的地方就是Modbus通讯,这次做项目遇到一个自定义协议需要CRC校验的协议,直接连例程发现计算结果不对通讯不上。后来发现CRC有很多中算法,网上资料也不全面。以下是我收藏总结的,估计也不全仅供参考。
参数解释
宽度:就是单个字节校验时要添加的长度,如长度16就是要在数据长度加上16个0或16个1除法分母。
多项式值:做运算时候的分子。
初始值:初始值如果是00就输入字节不用改变,如果是FF需要对高8位和输入值进行异或计算。
输入反转:输入进行按照字节逐个位反转。
输出反转:对输出结果进行整个逐个位反转。
结果异或值:如果是00则不需要进行异或。如果是FF需要对校验结果进行异或。
大家如果需要做其他CRC校验可以微联系luyang1289