crc.h
来自「MSP430单片机C语言应用程序设计实例精讲(秦龙编著)」· C头文件 代码 · 共 51 行
H
51 行
#define CRC_TABLE_SIZE 256
#define CRC16_CHECK 0xFEE8
#define CRC16R_CHECK 0xBB3D
#define CRC32_CHECK 0xFC891918
#define CRC32R_CHECK 0xCBF43926
// CRC-16: x16 + x15 + x2 + 1
#define CRC16_POLY 0x8005
#define CRC16_INIT_REM 0x0
#define CRC16_FINAL_XOR 0x0
#define CRC16R_POLY 0xA001
#define CRC16R_INIT_REM 0x0
#define CRC16R_FINAL_XOR 0x0
// CRC-CCITT: x16 + x12 + x5 + 1
#define CRC16_POLY_CCITT 0x1021
#define CRC16_INIT_REM_CCITT 0x0
#define CRC16_FINAL_XOR_CCITT 0x0
// CRC-32: x32 + ... + 1
#define CRC32_POLY 0x04C11DB7
#define CRC32_INIT_REM 0xFFFFFFFF
#define CRC32_FINAL_XOR 0xFFFFFFFF
#define CRC32R_POLY 0xEDB88320
#define CRC32R_INIT_REM 0xFFFFFFFF
#define CRC32R_FINAL_XOR 0xFFFFFFFF
unsigned short crc16Bitwise(unsigned short crc, unsigned short poly,
unsigned char *pmsg, unsigned int msg_size);
unsigned short crc16Bitwise2(unsigned short crc, unsigned short poly,
unsigned char *pmsg, unsigned int msg_size);
unsigned long crc32Bitwise(unsigned long crc, unsigned long poly,
unsigned char *pmsg, unsigned int msg_size);
unsigned long crc32Bitwise2(unsigned long crc, unsigned long poly,
unsigned char *pmsg, unsigned int msg_size);
unsigned short crc16TableMethod(unsigned short crc, unsigned short *table,
unsigned char *pbuffer, unsigned int length);
unsigned short crc16rTableMethod(unsigned short crc, unsigned short *table,
unsigned char *pbuffer, unsigned int length);
unsigned long crc32TableMethod(unsigned long crc, unsigned long *table,
unsigned char *pbuffer, unsigned int length);
unsigned long crc32rTableMethod(unsigned long crc, unsigned long *table,
unsigned char *pbuffer, unsigned int length);
void crc16BuildTable(unsigned short *ptable, unsigned short poly);
void crc32BuildTable(unsigned long *ptable, unsigned long poly);
unsigned long bitReflect(unsigned long data, unsigned int width);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?