资源简介
收集整理最全的CRC16计算,C语言代码,包括CRC16-IBM/CRC16-MAXIM/CRC16-USB/CRC16-MODBUS/CRC16-CCITT/CRC16-CCITT-FALSE/CRC16-X25/CRC16-XMODEN/CRC16-DNP。 每种代码都包含查表和计算方式。还可以计算CRC表并打印。 有其它自定义CRC16参数可直接修改参数计算器使用,也可修改参数打印CRC表,再用做查表计算。
代码片段和文件信息
/******************************************
最全CRC16计算代码
含CRC16-IBM/CRC16-MAXIM/CRC16-USB/CRC16-MODBUS/CRC16-CCITT/CRC16-CCITT-FALSE/CRC16-X25/CRC16-XMODEN/CRC16-DNP。
定义 _CRC16_LOOKUP_TAB 表示使用查表计算, 调用crc16_cal(u8 *pu16 len);
定义 _CRC16_COMPUTATION 表示使用直接计算,调用crc16_cal(u8 *pu16 len);
定义 _CRC16_CAL_TAB表示打印CRC表调用 crc16_tab_cal();
下面定义选择CRC类型
//#define CRC16_IBM //CAL PASS/TAB PASS
//#define CRC16_MAXIM //CAL PASS/TAB PASS
//#define CRC16_USB //CAL PASS/TAB PASS
//#define CRC16_MODBUS // CAL PASS / TAB PASS
//#define CRC16_CCITT //CAL PASS / TAB PASS
#define CRC16_CCITT_FALSE //CAL PASS /TAB PASS
//#define CRC16_X25 //CAL PASS/TAB PASS
//#define CRC16_XMODEN //CAL PASS /TAB PASS (SSCOM CCITT 为XMODEN)
//#define CRC16_DNP //CAL PASS /TABP ASS
有其它自定义校验参数,可直接修改参数
#define CRC_POLY 0x8005 //CRC 多项式
#define CRC_INIT 0xFFFF //CRC 初始值
#define CRC_XOROUT 0x0000 //CRC 结果异或值
#define REFIN 1 //输入反转标志
#define REFOUT 1 //输出反转标志
*******************************************/
///////////////////CRC/////////////
//#define _CRC16_COMPUTATION
#define _CRC16_LOOKUP_TAB
//#define _CRC16_CAL_TAB //计算CRC16表并打印
///////////////////////
//#define CRC16_IBM //CAL PASS/TAB PASS
//#define CRC16_MAXIM //CAL PASS/TAB PASS
//#define CRC16_USB //CAL PASS/TAB PASS
//#define CRC16_MODBUS // CAL PASS / TAB PASS
//#define CRC16_CCITT //CAL PASS / TAB PASS
#define CRC16_CCITT_FALSE //CAL PASS /TAB PASS
//#define CRC16_X25 //CAL PASS/TAB PASS
//#define CRC16_XMODEN //CAL PASS /TAB PASS (SSCOM CCITT 为XMODEN)
//#define CRC16_DNP //CAL PASS /TABP ASS
#ifdef CRC16_IBM
#define CRC_POLY 0x8005 //CRC 多项式
#define CRC_INIT 0x0000 //CRC 初始值
#define CRC_XOROUT 0x0000 //CRC 结果异或值
#define REFIN 1 //输入反转标志
#define REFOUT 1 //输出反转标志
#ifdef _CRC16_LOOKUP_TAB
u16 CRC16_IBM_TAB[256] = {
0x0000 0xC0C1 0xC181 0x0140 0xC301 0x03C0 0x0280 0xC241 0xC601 0x06C0 0x0780 0xC741 0x0500 0xC5C1 0xC481 0x0440
0xCC01 0x0CC0 0x0D80 0xCD41 0x0F00 0xCFC1 0xCE81 0x0E40 0x0A00 0xCAC1 0xCB81 0x0B40 0xC901 0x09C0 0x0880 0xC841
0xD801 0x18C0 0x1980 0xD941 0x1B00 0xDBC1 0xDA81 0x1A40 0x1E00 0xDEC1 0xDF81 0x1F40 0xDD01 0x1DC0 0x1C80 0xDC41
0x1400 0xD4C1 0xD581 0x1540 0xD701 0x17C0 0x1680 0xD641 0xD201 0x12C0 0x1380 0xD341 0x1100 0xD1C1 0xD081 0x1040
0xF001 0x30C0 0x3180 0xF141 0x3300 0xF3C1 0xF281 0x3240 0x3600 0xF6C1 0xF781 0x3740 0xF501 0x35C0 0x3480 0xF441
0x3C00 0xFCC1 0xFD81 0x3D40 0xFF01 0x3FC0 0x3E80 0xFE41 0xFA01 0x3AC0 0x3B80 0xFB41 0x3900 0xF9C1 0xF881 0x3840
0x2800 0xE8C1 0xE981 0x2940 0xEB01 0x2BC0 0x2A80 0xEA41 0xEE01 0x2EC0 0x2F80 0xEF41 0x2D00 0xEDC1 0xEC81 0x2C40
0xE401 0x24C0 0x2580 0xE541 0x2700 0xE7C1 0xE681 0x2640 0x2200 0xE2C1 0xE381 0x2340 0xE101 0x21C0 0x2080 0xE
- 上一篇:模拟战争游戏 C语言
- 下一篇:c语言有趣的100个代码
相关资源
- c语言有趣的100个代码
- 好玩的C语言代码
- 通讯录管理系统 源代码.rar
- 矩阵相乘的c语言代码
- 三维装箱问题C语言代码
- 词频统计c语言代码
- vigenere加密解密C语言代码
- C语言代码ATM管理系统
- 非标设备接入GB28181平台C语言代码实现
- CVSD解码c语言代码
- 黑白棋游戏c语言代码
- 最短剩余时间优先算法SRTFC语言代码
- 分治法求格雷码的C语言代码
- bpsk的C语言代码
- 实序列快速傅里叶变换C语言源代码
- at89c51单片机+矩阵键盘编写的计算器
- 约瑟夫死亡游戏C语言代码
- 拉普拉斯算子边缘检测C语言代码
- 校级运动会 管理系统 c语言代码
- 中国邮路问题c语言代码
- Huffman编/译码器C语言代码
- 黑白棋c语言代码
- 自相关c语言代码简单实用
- 支持自动回复CRC16计算的串口调试助手
- C语言代码自动整理工具
- tr069中文版文档及其c语言代码实现
- 经典 C语言源代码大全
- C语言圆弧插补源代码
- HMAC-SHA256和HMAC-SHA1加密C语言代码(V
- C语言代码走查模版
评论
共有 条评论