/* * * 使用示例:crc_list.CRC_4_ITU(data, len); * data为数据数组,len为数据长度 * */ #ifndef __CRC_LIB_H__ #define __CRC_LIB_H__ #ifdef __cplusplus extern "C" { #endif #include "stdint.h" typedef struct { uint8_t (*CRC_4_ITU)(uint8_t *data, uint8_t len); uint8_t (*CRC_5_EPC)(uint8_t *data, uint8_t len); uint8_t (*CRC_5_ITU)(uint8_t *data, uint8_t len); uint8_t (*CRC_5_USB)(uint8_t *data, uint8_t len); uint8_t (*CRC_6_ITU)(uint8_t *data, uint8_t len); uint8_t (*CRC_7_MMC)(uint8_t *data, uint8_t len); uint8_t (*CRC_8)(uint8_t *data, uint8_t len); uint8_t (*CRC_8_ITU)(uint8_t *data, uint8_t len); uint8_t (*CRCC_8_ROHC)(uint8_t *data, uint8_t len); uint8_t (*CRC_8_MAXIM)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_IBM)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_MAXIM)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_USB)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_MODBUS)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_CCITT)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_CCITT_FALSE)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_X25)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_XMODEM)(uint8_t *data, uint8_t len); uint16_t (*CRC_16_DNP)(uint8_t *data, uint8_t len); uint32_t (*CRC_32)(uint8_t *data, uint8_t len); uint32_t (*CRC_32_MPEG_2)(uint8_t *data, uint8_t len); } FuncionTable; extern FuncionTable crc_list; #ifdef __cplusplus } #endif #endif /* __CRC_LIB_H__ */