CRC8校验接口(C语言)

简介: CRC8校验接口(C语言)

1. crc8校验接口

static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size )
{
    uint8_t crc = 0;
  uint8_t i=0;
    if(buf_size <= 0)
    {
        return crc;
    }
    while( buf_size-- )
    {
        for (  i = 0x80; i != 0; i /= 2 )
        {
            if ( (crc & 0x80) != 0)
            {
                crc *= 2;
                crc ^= 0x07; 
            }
            else
            {
                crc *= 2;
            }
            if ( (*p_buffer & i) != 0 )
            {
                crc ^= 0x07;
            }
        }
        p_buffer++;
    }
    return crc;
}


2.测试

#include "stdlib.h"
#include <stdio.h>
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
int main(void)
{
  uint8_t tempbuf[]={0x01,0x02,0x03,0x4,0x5};
  uint8_t crc=0;
  crc=crc8(tempbuf,5);
  printf("crc %x\r\n",crc);
  return 0; 
}


运行:

root@ubuntu:/home/smbshare/crc8# gcc -o crc crc8.c 
root@ubuntu:/home/smbshare/crc8# ./crc 
crc bc


对比工具检验

image.png



说明接口正确。


目录
相关文章
|
4天前
|
编译器 C语言
C语言中函数宏的三种封装方式详解
C语言中函数宏的三种封装方式详解
49 0
|
9月前
|
存储 C语言
CRC编码计算方法及C语言实现
CRC(Cyclic Redundancy Check)是一种常用的错误校验码,用于检测和纠正传输过程中的错误。在数据通信和存储中,CRC编码被广泛应用,因为它能够高效地检测错误,并且实现简便。
151 0
|
9月前
|
C语言
C语言中如何实现数据帧封装与解析
在计算机网络通信中,数据帧的封装与解析是非常重要的环节。本文将介绍一种基于C语言的实现方法,旨在帮助读者理解数据帧的结构和实现过程。
152 1
|
10月前
|
算法 Java 数据安全/隐私保护
C语言如何实现DES加密与解密
C语言实现DES加密解密 #include "des.h" //移位表 static Table_size const shiftTable[NumberOfKeys] = {1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1}; //E扩展表 static Table_size const eTable[des_key_pc2_standard]={ 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 1
123 0
|
11月前
|
算法 C语言
LabVIEW实现CRC校验
CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
LabVIEW实现CRC校验
|
11月前
|
算法 异构计算
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
203 0
(C语言)一些容易出错的类型
(C语言)一些容易出错的类型
|
编译器 C语言
初识C语言之函数封装篇——带你嗅探万花从中的清香(上)
初识C语言之函数封装篇——带你嗅探万花从中的清香(上)
167 0
初识C语言之函数封装篇——带你嗅探万花从中的清香(上)
F - C语言合法标识符
F - C语言合法标识符
|
存储 编译器 C语言
c语言标识符合法(带题讲解)
c语言标识符合法(带题讲解)
179 0
c语言标识符合法(带题讲解)