#include "crc.h" uint8_t crc_crc8(const uint8_t *data,int num) { uint8_t crc = 0; uint16_t j,i; for (j = 0; j < num; j++) { crc ^= *(data+j); for ( i = 0; i < 8; i++) { if ((crc & 0x01) != 0) { crc >>= 1; crc ^= 0x8c; } else { crc >>= 1; } } } return crc; } void crc_crc16(const uint8_t *data, int len,uint8_t *lb,uint8_t *hb) { if (len > 0) { uint16_t crc = 0xFFFF; int i = 0; for (; i < len; i++) { crc = (uint16_t)(crc ^ (data[i])); for (int j = 0; j < 8; j++) { crc = (crc & 1) != 0 ? (uint16_t)((crc >> 1) ^ 0xA001) : (uint16_t)(crc >> 1); } } uint8_t hi = (uint8_t)((crc & 0xFF00) >> 8); //高位置 uint8_t lo = (uint8_t)(crc & 0x00FF); //低位置 *lb=lo;*hb=hi; } } uint32_t crc_crc32(const uint8_t *data,int size) { uint32_t temp,crc=0xffffffff; int i=0,j=0; if((size%4)!=0) { return 0; } while(i