44 lines
573 B
C
44 lines
573 B
C
|
|
#ifndef __CRC16_H__
|
|
#define __CRC16_H__
|
|
|
|
/*
|
|
|
|
CRC16 算法模块
|
|
|
|
提供查表法和移位法两种 CRC16 算法
|
|
|
|
*/
|
|
|
|
#include "afxdef.h"
|
|
|
|
#define USE_CRC_TABLE // 用查表法crc, 否则, 用移位法计算
|
|
#define SHIFT_RIGHT // 右移位
|
|
|
|
#ifdef USE_CRC_TABLE
|
|
|
|
#define CRC_INIT 0x0000 // 并且crc初值为0
|
|
|
|
#else
|
|
|
|
#ifdef SHIFT_RIGHT // 如果是右移
|
|
|
|
#define CRC_INIT 0xFFFF // crc初值为0xFFFF
|
|
|
|
#else // 如果是左移
|
|
|
|
#define CRC_INIT 0x0000 // 并且crc初值为0
|
|
|
|
#endif // #ifdef SHIFT_RIGHT
|
|
|
|
#endif
|
|
|
|
|
|
u16 CalcCrc16(const u8 * pBuf, int lenBuf);
|
|
u32 CalcCheckSum(const u8 * pBuf, int lenBuf);
|
|
|
|
|
|
|
|
#endif
|
|
|