CRC-Lib/crc_lib.h

48 lines
1.5 KiB
C
Raw Permalink Normal View History

2024-12-18 06:17:03 +00:00
/*
*
* 使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__ */