前一段时间做协议转换器的时间用到CRC-16校验,查了不少资料发现都不理想。查表法要建表太麻烦,而计算法觉得那些例子太罗嗦。最后只好自己写了,最后发现原来挺简单嘛:) 两个子程序搞定。这里用的多项式为: CRC-16 = X16 + X12 + X5 + X0 = 2^0+2^5+2^12+2^16=0x11021 因最高位一定为“1”,故略去计算只采用0x1021即可 CRC_Byte:计算单字节的CRC值 CRC_Data:计算一帧数据的CRC值 CRC_High CRC_Low:存放单字节CRC值 CRC16_High CRC16_Low:存放帧数据CRC值 ;<>------
1