Len--;
计算CRC码的步骤为:
CRC=0xFFFF;//setall1
CRC-16(循环冗余错误校验)
if(Len<=0)
直接法生成代码:
else
}
if((CRC&1)!=0)
else
unsignedshortcrc_16(unsignedchar*Array,unsignedchar*Rcvbuf,unsignedintLen)
CRC=0;
CRC=CRC>>1; //
冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
CRC+=Rcvbuf[1];
CRC=(CRC>>1)^0xA001;
CRC=Rcvbuf[0]<<8;
}
{
CRC=CRC^(unsignedint)(Array[IX]);
⑤重复步骤③和④,直到右移8次,这样整个8位数据全部进行了处理。
①预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器。
{
{
②把第一个8位数据与16位CRC寄存器的低位相异或运算,把结果放于CRC寄存器。
}
⑧将CRC码分成高8位和低8位,按低位在先,高位在后,将它们加到传送数据之后。
returnCRC;
Rcvbuf[0]=(CRC&0xff00)>>8;//高位置
for(IY=0;IY<=7;IY++)
在进行CRC码计算时只用8位数据位。起始位、停止位、奇偶校验位都不参与CRC码计算。
}
④如果最低位为0:重复第3步,再次右移一位;如果最低位为1:CRC寄存器与多项式A001(1010000000000001)进行异或运算。
unsignedint IX,IY,CRC;
⑦最后得到的CRC寄存器的值即为CRC码。
for(IX=0;IX<=Len;IX++)
Rcvbuf[1]=(CRC&0x00ff); //低位置
③把寄存器的内容右移一位,用0填补最高位,检查最低位。
⑥重复步骤②到⑤,进行下个8位数据的处理。
展开

神笔马良绘图系统7.0 绿色免费版
抢小米手机软件-小米猎手(抢小米软件)1.0 绿色免费版
承诺书范文下载-房地产抵押承诺书完整免费版 word版
Cowmasters下载-Cowmasters手游1.1 安卓最新版
大坡道特技摩托车游戏下载-大坡道特技摩托车手游1.2 手机版
战地现代战争无限金币下载-战地:现代战争破解版1.0.2 免广告版
企点帮帮app-企点帮帮1.0.11最新版
机大侠助手官方版APP下载-机大侠助手验机工具1.5.0 最新版
服务快车下载-服务快车软件1.11.8 安卓手机版
史矛革之怒满v版1.0 安卓版
教师节qq表情包下载-教师节gif动态qq表情图片下载2017最新免费版
宜格思英语1.0 苹果版
MarkTimes软件下载安卓版-MarkTimes官方正版1.2 安卓版
网站源码下载-源码下载工具(源码下载者)V2.1.2 永久免费版
黑蜘蛛侠游戏下载-黑色蜘蛛侠游戏1.0 手机版
对啊自考随身学下载-对啊自考随身学app1.1.4 官方安卓版
征服太空手游下载-征服太空游戏1.0.10 安卓版
LED字幕Pro下载-LED字幕Pro(led scroll pro中文版)3.3 安卓专业版
模拟人生4迷途中的古欧城堡别墅MOD免费版
选剧游戏1.0.3 安卓版