收藏 分销(赏)

LRC校验算法C语言程序.doc

上传人:仙人****88 文档编号:11398217 上传时间:2025-07-21 格式:DOC 页数:3 大小:22.54KB 下载积分:10 金币
下载 相关 举报
LRC校验算法C语言程序.doc_第1页
第1页 / 共3页
LRC校验算法C语言程序.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
LRC校验算法C语言程序 序言 近日用到关于LRC检验算法,网上找了很多资料,其描述方式实在不敢恭维,为方便使用者特写下详细的计算过程,希望对你有所帮助。 By 厦大 Jacky 20120814 LRC校验的数据发送格式 起始字符(1个字符)+数据(2n个字符)+校验值(2个字符)+结束字符(2个:回车+换行)。 LRC校验值计算 数据(2n个字符)两两组成一个16进制的数值,然后将这些数值相加,将所得加值与256求模,然后用256减去所得模值,得到的数值即为检验值(即:sum%256后取反,再加1)。 范 例 发送数值 :01050BE7FF0009 数值分析 :-- 起始字符;01050BE7FF00 -- 数据值; 09 -- 检 验值 ; 其后还有回车换行(未标出)。 数据值拆分:010508070000 -->0x01 0x05 0x0B 0xE7 0xFF 0x00 求和: 0x01+0x05+0x0B+0xE7+0xFF+0x00 =0x01F7; 取模,取反: 0x1F7%0x100=0xF7 0xF7 取反 0x08 加1: 0x08+1=0x09 (校验值) C语言算法: uchar data[17]={0x3a,0x30,0x31,0x30,0x35, 0x00,0x00,0x00,0x00,//no 0x00,0x00,0x00,0x00,//status 0x00,0x00, //LRCData 0x0d,0x0a }; //******************************************************************************* // 语法格式:uchar LRC_Check(uchar *data,uchar length); // 实现功能:LRC数据检测算法程序 // 参数: 无 // 返回值: LRC检验值 //****************************************** uchar LRC_Check(uchar *data,uchar length) { uchar i; uint k; uchar result; uchar lrcdata[length]; for(i=1;i<length+1;i++) { if(data[i]>0x40) lrcdata[i-1]=data[i]-0x41+10; else lrcdata[i-1]=data[i]-0x30; } k=0; for(i=0;i<length/2;i++) { k+=(lrcdata[2*i]*16+lrcdata[2*i+1]); } k=k%256; k=256-k; result=k%256; return result; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服