1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | u16 crc16_ccitt(u8 *tmp,u8 num) { u16 CrcTmp = 0x0; u8 i=0,j=0; u16 s = 0; u16 tmpcrc = 0; for(i=0;i<num;i++) { tmpcrc = tmp[i]<<8; tmpcrc &= 0xff00; CrcTmp ^= tmpcrc; for(j=0;j<8;j++) { s = CrcTmp&0x8000; CrcTmp <<= 1; CrcTmp &= ~(0x0001); if(s) { CrcTmp ^= 0x1021; } } } return CrcTmp; }
|