u16 CRC_16_acc(unsigned char *buf,u16 len,u16 acc) { u16 crc; unsigned char c,i,f1; crc = acc; f1 = 1; while(len != 0) { c =* buf; if(c != 0xff) { f1 = 0; } for(i = 0;i < 8;i++) { if((crc ^ c) & 1) { crc = (crc>>1)^0xa001; } else { crc >>= 1; } c >>= 1; } len--; buf++; } if(f1 == 1) { return 0; } return crc; } unsigned char Add_Crc_Calc(unsigned char* buf,unsigned char len) { unsigned i=0,ret0 =0; for(i = 0;i < len;i++ ) { ret0 += buf[i]; } return ret0; }