|
如题:
- #define CRC_POLYNOM 0x8408 //CRC16的多项式,暂定统一用这个
- u16 CRC_16(u8 length, u8 *checksource)
- {
- u8 verifyi,verifyj;
- u16 verifynum=0xffff; //verifynum为CRC发生器的初值
-
- length= (length >64)? 64:length; //必须限制长度
-
- for (verifyi=0;verifyi<length;verifyi++)
- {
- verifynum^=*checksource;
- for (verifyj=0;verifyj<8;verifyj++)
- {
- if (verifynum&0x0001) verifynum=(verifynum>>1)^CRC_POLYNOM;//CRC多项式
- else verifynum=(verifynum>>1) ;
- }
- checksource++;
- }
- return verifynum;
- }
复制代码
u16 CRC_16(u8 length, u8 *checksource) ,Length是指数组长度-2!
例如数组: 3A 60 09 80 0A 11 0A 01 53 6A ,最后两位为CRC16 高八位,CRC16低八位,
计算的小工具下载地址:
|
|