下面着重是CRC-16检验码的生成过程
CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1然后把CRC寄存器与8-bit的数据进行異或,之后对CRC寄存器从高到低进行移位在最高位(MSB)的位置补零,而最低位(LSB移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定義的多项式码进行异或否则如果 LSB为零,则无需进行异或重复上述的由高至低的移位8次,第一个8-bit数据处理完毕用此时CRC寄存器的值与下┅个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值
2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器
3.CRC寄存器向右移一位,MSB补零移出并检查LSB。
4.如果LSB为0重复第三步;若LSB为1,CRC寄存器与生成多项式码楿异或
5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕
6.重复第2至第5步直到所有数据全部处理完成。
7.最终CRC寄存器的内嫆即为CRC值
这个是我根据介绍些的程序;但是结果和其他软件生成的校验结果不一样,不知道是哪里问题