CRC8使用记录

C# CRC8直接计算算法实现 项目涉及CRC的数据校验,写点学习笔记。CRC校验具体应用视实际所选的多项式而定,本次g(x)=x8+x2+x+1,陪集码FFH。 public byte CRC8(byte crcPoly, byte[] crcData) { byte poly = crcPoly; byte crcResult = 0xFF; 阅读详情

CRC8使用记录

  • 写法1

uint8_t check_crc8( uint8_t *data_d, uint16_t size )
{
    uint8_t crc = 0;
	uint8_t i=0;
	
    if(size <= 0)
    {
        return crc;
    }
	
    while( size-- )
    {
		//SYS_TEST("*data_d=%x \r\n",*data_d);
		
        for (  i = 0x80; i != 0; i /= 2 )
        {
			SYS_TEST("i=%d \r\n",i);
			
            if ( (crc & 0x80) != 0)
            {
                crc *= 2;
                crc ^= 0x07; 
            }
            else
            {
                crc *= 2;
            }
 			
            if ( (*data_d & i) != 0 )
            {
                crc ^= 0x07;
            }
        }
        data_d++;
    }
	SYS_TEST("crc=%x \r\n",crc);
    return crc;
}
  • 写法2(推荐)

uint8_t crc8_crc8(uint8_t *data, int size)
{
    uint8_t crc = 0x00;
    uint8_t bit =0;

    while (size--)
    {
        crc ^= *data++;
        for (bit = 0; bit < 8; bit++)
        {
            if (crc & 0x80)
            {
                crc = (crc << 1) ^ 0x07;
            }
            else
            {
                crc <<= 1;
            }
        }
    }
	SYS_TEST("crc=%x \r\n",crc);	
    return crc;
}
  • 测试结果
    在这里插入图片描述

测试结果
数据 0x01,0x02,0x03,0x04,0x05
crc8=bc
证明计算是正确的

分享链接
https://blog.youkuaiyun.com/dop102/article/details/102930247

MT6701磁编码芯片SSI接口CRC调试踩坑记录与排查思路 在运动控制与机器人关节反馈场景中,磁编码器凭借对油污、粉尘不敏感以及装配公差大的优势,逐渐替代光编码器成为闭环控制的关键器件。SSI接口作为一种单向同步串行协议,仅需时钟、数据与片选三线即可读取绝对角度,但其帧格式与SPI存在本质差异,且常带CRC校验用于链路可靠性保障。实际工程中,芯片文档的帧长描述、CRC算法参数不完整甚至中英文版本矛盾,会导致调试陷入困境。本文以MT6701为例,详细记录了如何借助逻辑分析仪抓取实际波形、反推帧长、穷举CRC参数组合,最终确认正确的校验算法与通信时序。同时总结了国产芯片 阅读详情

相关推荐

STM32 HAL库驱动SHT25温湿度传感器:I2C时序、CRC校验与调试踩坑全记录

I2C总线是嵌入式系统中最常见的通信方式之一,广泛应用于各类传感器数据采集。SHT25作为一款高精度数字温湿度传感器,依靠I2C接口实现命令交互与数据读取,其内部ADC转换结果需通过特定公式换算为物理量。在工程实践中,使用STM32的HAL库可以简化外设配置,但I2C的时序控制、总线错误处理以及CRC8校验仍然是保证通信可靠性的关键。该方案适用于环境监测、工业仪表、仓储记录等场景。本文基于STM32F407VE平台,完整梳理了从CubeMX初始化、HAL库驱动编写到SHT25实测调试的整个过程,并重点分析了

weixin_29196315的博客 264

CRC8检验算法(C语言实现)

本文实现的是:width=8, poly=0x31, init=0x00, refin=false, refout=false, xorout=0x00 的 MSB-first CRC-8 实现。

aa25012的博客 1万+

游戏包CRC校验失败?7-Zip/WinRAR/Bandizip分卷固实修复

压缩包完整性校验是判断数据在下载、传输、落盘后是否发生位翻转或残缺的基础手段。CRC、MD5、SHA-256等校验值通过比对原始指纹,能快速区分下载链路残缺与压缩包内部数据块错误;而分卷压缩、固实压缩会放大损坏影响,使一个分卷或数据块异常波及后续文件。对大体积游戏包而言,先测试再解压、保留损坏文件、利用RAR恢复记录,往往比整包重下更省时间。7-Zip、WinRAR、Bandizip在格式支持、命令行测试、编码识别和修复能力上各有侧重,配合校验、修复与代码页调整,可覆盖多数CRC校验失败、分卷缺失和乱码解压

weixin_33617691的博客 57

CRC8校验算法源码——C语言版

本文以CRC8实际代码为例启发各位读者,如何编写一个CRC的校验算法。让各位读者直接跳过繁琐的原理说明阶段,快速应用到工程当中

Miao8miao的博客 5183

CAN CRC校验15_CAN FD与CAN协议区别

CAN CRC校验15_CAN FD与CAN协议区别

让你爱上电路设计 5303

CRC校验工具开发与实战应用

CRC(Cyclic Redundancy Check,循环冗余校验)是一种基于多项式除法的高效数据完整性校验技术,广泛应用于数据通信、文件存储、网络传输等领域。其核心思想是通过对数据块进行模2多项式除法运算,生成一个固定长度的校验码(CRC值),用于检测数据在传输或存储过程中是否发生错误。相较于奇偶校验和校验和(Checksum)方法,CRC具有更强的错误检测能力,尤其对突发性错误有良好的识别效果。它不仅计算效率高,而且实现成本低,因此成为工业界广泛采用的数据校验标准。

weixin_42524864的博客 729

如何理解CRC8校验和算法:Go语言实现的终极完整指南

🚀 想要确保数据传输的完整性吗?CRC8校验和算法正是您需要的错误检测利器!本文将带您深入了解CRC8算法的原理,并展示如何使用Go语言高效实现这一关键技术。无论您是初学者还是经验丰富的开发者,这份完整指南都将帮助您掌握数据校验的核心技术。 ## 🔍 什么是CRC8校验和算法? CRC8(Cyclic Redundancy Check 8-bit)是一种**循环冗余校验算法**,专门用于检

gitblog_00454的博客 514

crc8校验例程c语言

从linux内核提取的crc8校验函数,支持配置: LSB/MSB, 初始值,异或值,很实用,移植简单

CRC_8 算法实现 C语言

#include #include #include unsigned CRCcode[] = {  0x0,0x07,0x0e,0x09,0x1c,0x1b,0x12,0x15, // ;00-07  0x38,0x3f,0x36,0x31,0x24,0x23,0x2a,0x2d, //;08--0f  0x70,0x77,0x7e,0x79,0x6c,0x6b,0x62

lx1252054236的专栏 1099

跟着团子学SAP CO:基于成本的完工百分比结算:Cost-based POC(以项目为例)

本文以英国及北美会计准则下的基于成本的POC的销售型项目结算对PS模块中的完工百分比进行介绍

Lucas1211的博客 2万+

Win10离线安装.net framework 3.5全攻略:镜像匹配与DISM命令实战(附错误0x8024402c解决方案)

本文详细解析了在Windows 10系统中离线安装.NET Framework 3.5的完整流程与核心难点。重点阐述了如何精准匹配系统版本与安装镜像,并提供了使用DISM命令进行离线安装的实战步骤。针对常见的错误代码0x8024402c,文章深入剖析了其根源,并给出了系统级的排查与解决方案,特别适合企业内网运维人员参考。

weixin_29299807的博客 661

CRC8 表记录

int sht75_crc_table[] = { 0x00,0x31,0x62,0x53,0xc4,0xf5,0xa6,0x97,0xb9,0x88,0xdb,0xea,0x7d,0x4c,0x1f,0x2e, 0x43,0x72,0x21,0x10,0x87,0xb6,0xe5,0xd4,0xfa,0xcb,0x98,0xa9,0x3e,0x0f,0x5c,0x6d, 0x86,0xb7,0x...

优快云_Freya_1988的博客 917

QDMA工程搭建/windows驱动编译与性能测试

请注意,根据您的目标操作系统,您可能需要在windows启动配置中启用测试签名的驱动程序,以便启用此驱动程序的安装。右键单击设备,选择更新驱动程序软件,然后选择构建的QDMA驱动程序的文件夹(通常为。创建一个新工程,在IP Catalog中搜索QDMA,双击创建qdma ip核。驱动程序安装安装驱动程序最简单的方法是通过Windows的“设备管理器”。如果系统提示未经验证的驱动程序发布者,请选择无论如何安装此驱动程序软件。本节主要介绍QDMA驱动在Windows系统的源文件、编译和安装过程。

qq_28455081的博客 2287

CRC-8/MAXIM验证实战记录

使用的CRC-8/MAXIM:  参数模型: x8+x5+x4+1  在调试MAXIM一款ds2401芯片的时候,crc的验证 成功代码记录: 环境采用了啊哈C编译 代码来自网络 #include    #include       //CRC8  CRC 校验的等效多项式是: CRC = x8 + x5 + x4 + 1 DS2401   /*  测试用例  使

貌似稿手的博客 6356

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1622

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

FPGA新手避坑指南:从串行到并行CRC32_8,我的Verilog仿真与调试实战记录

本文详细记录了从串行CRC32到并行CRC32_8的Verilog实现与调试全过程,特别适合FPGA新手学习。文章涵盖了CRC基础原理、并行计算的数学推导、Verilog代码实现中的常见陷阱、仿真验证方法以及性能优化技巧,帮助读者避免常见错误并提升开发效率。

weixin_33743880的博客 596

ArcGIS笔记13_利用ArcGIS制作岸线与水深地形数据?建立水动力模型之前的数据收集与处理?

在利用MIKE建立水动力模型之前,需要收集、处理和制作诸多数据和资料,主要有岸线数据、水深地形数据、开边界潮位驱动数据、风场数据、潮位和海流观测资料和站点潮汐调和常数资料等。本篇主要介绍这些资料的获取与处理。

晏长街的博客 5948

CRC16详解(我的理解欢迎指正)

CRC算法概述

qq_42642925的博客 610

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 354

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

MRAM与8位单片机实现高可靠工业数据记录方案

在嵌入式存储领域,非易失性存储器选型直接影响数据可靠性。MRAM(磁性随机存储器)利用磁隧道结原理实现纳秒级写入和近乎无限的擦写寿命,相比EEPROM和Flash具有显著优势。SPI接口的MRAM芯片如MR25H40CDF,硬件兼容SPI Flash,但无需擦除即可直接写入,简化了驱动逻辑。结合PIC18F86J15等8位单片机,可构建低成本、高可靠的工业数据记录系统,适用于电力监测、环境采集等场景。通过环形缓冲、掉电保护和CRC校验,确保数据在恶劣工业环境下的完整性。

weixin_34128839的博客 422

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用LuatOS读取AHT20温湿度模块时遇到的一些问题记录

使用luatOS读取ATH20温湿度模块时遇到的一些问题记录一下,也分享给其他小伙伴做个参考。

dxk3822019的博客 921

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MRAM工业数据记录实战:PIC18F4685驱动MR25H40CDF的SPI存储方案

在工业嵌入式系统中,非易失性存储器的选型直接影响数据记录的可靠性。MRAM(磁性随机存储器)基于磁性隧道结原理,具备无写延迟、超高擦写寿命和掉电数据保持特性,适合高频写入与严苛温度环境。通过SPI接口与MCU连接,MRAM可实现字节级读写和页写操作,技术价值在于兼顾高速、高耐久与数据安全。典型应用包括工业数据记录仪、状态监控和事件日志存储。本文以PIC18F4685与MR25H40CDF为例,详解硬件连接、SPI模式配置、页写边界处理及掉电保护等工程实践,帮助开发者规避常见陷阱。

weixin_34294649的博客 306

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MR25H40CDF FRAM与STM32F334R8工业级数据记录系统设计

FRAM(铁电随机存取存储器)是一种兼具RAM读写速度与非易失特性的存储技术,其物理机制基于铁电体极化翻转,区别于Flash的浮栅电荷存储,因而支持纳秒级写入、10^12次耐久性及字节级直接覆写。该特性使其在高频采样、低功耗边缘节点和高可靠性工业控制中具备独特价值,尤其适用于PLC数据日志、伺服校准参数、安全停机记录等场景。结合STM32F334R8的硬件协同能力——如高级定时器触发、SPI+DMA零等待传输、ADC注入式采集与硬件CRC校验——可构建确定性极强的实时数据流水线。本文聚焦MR25H40CDF

weixin_29188997的博客 300

【技术篇】NT3H2211 EEPROM存储分区设计与移动电源异常记录规范

面向嵌入式软件、系统架构师,针对 NT3H2211 共 2048 字节 EEPROM,输出一套量产验证过的四区 + 扩展区存储划分:**基本信息区、实时数据区、异常记录区、配置保留区、扩展数据区**。分别定义各区域地址、字段数据格式,重点说明新国标要求的异常记录:采用 16 字节定长记录、16 条环形缓冲区,内置 CRC8 校验,包含异常类型、时间戳、SOC、循环次数等信息。

sgpcb_666的博客 183
上一篇: 【随手笔记】LCD屏幕之ST7567G+UC1701E
下一篇: 【随手笔记】单片机内存
Long-Run
博客等级 码龄3年 4602粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值