CRC16校验 C语言实现 您所在的位置:网站首页 c语言crc校验 CRC16校验 C语言实现

CRC16校验 C语言实现

2023-07-25 09:19| 来源: 网络整理| 查看: 265

文章目录 1 crc.c2 crc.h

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。 本文实现 CRC16 的C语言校验算法,采用的是查表的方法。CRC多项式是 x16+x15+x2+1(0x8005),CRC的初始值为0xFFFF,是modbus的CRC校验算法。

1 crc.c #include "crc16.h" /* CRC16 余式表 */ static uint16_t crctalbeabs[] = { 0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, 0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400 }; /*! * 功 能: CRC16校验 * param1: 指向要校验的数据的指针 * param2: 要校验的数据的长度 * retval: 校验所得到的值,uint16_t 类型 * * 说 明: 本次CRC校验为查表法,多项式为 x16+x15+x2+1(0x8005),CRC的初始值为0xFFFF */ uint16_t Crc16(uint8_t *ptr, uint32_t len) { uint16_t crc = 0xffff; uint32_t i; uint8_t ch; for (i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有