找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2232|回复: 2
打印 上一主题 下一主题
收起左侧

CRC循环校验

[复制链接]
跳转到指定楼层
楼主
uint crc16l(uchar *ptr,uchar len) // ptr 为数据指针,len 为数据长度
{
uchar i;
while (len--)
{
for(i=0x80; i!=0; i>>=1)
{
if((crc&0x8000)!=0) {crc<<=1; crc^=0x1021;} 1-1
else crc<<=1; 1-2
if((*ptr&i)!=0) crc^=0x1021; 1-3
}
ptr++;
}
return(crc);
}

我对1-1 1-2 1-3 行不是很懂,能讲解一下吗,想了很久还是没结果,麻烦你了

单片机通信系统中CRC算法与硬件环境编程的实现(pdf),根据第七个方程编出以上代码,我很不理解


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2016-4-7 03:54 | 只看该作者
循环冗余校验(CRC)算法入门引导:http://www.51hei.com/bbs/dpj-47737-1.html
最通俗的CRC校验原理剖析:http://www.51hei.com/bbs/dpj-47736-1.html
CRC8校验分析:http://www.51hei.com/bbs/dpj-47738-1.html
回复

使用道具 举报

板凳
ID:110895 发表于 2016-4-7 09:12 | 只看该作者
1-1 CRC 先左移1位,然后与0x1021进行异或运算
1-2 CRC 左移1位
1-3 与0x1021进行异或运算
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表