optical/NxFuncs/crc/crc16.h
2025-09-04 09:45:08 +08:00

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