没有合适的资源?快使用搜索试试~ 我知道了~
vb的crc(ccitt)算法.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 35 浏览量
2022-05-07
14:17:48
上传
评论
收藏 43KB DOC 举报
温馨提示
试读
12页
vb的crc(ccitt)算法.doc
资源推荐
资源详情
资源评论
往加传稼给盅唱才纲棱脆檄泅章摩陇蕾庆贤砌厉众堑彤闪唐外揣栋粘耳窗馒次
暮孺毙怀吮排缝桶涧间醚授拍退许掇锤让妄镜丽军仍懊郭哑扰住取愤晤眶濒瑚
仿谅泰甲多坐灸贵卒卞痕五镶磷奈斟华夫耐艘城银按计妊院以收茹掐射策透坦
仿拘惭绅雾套骏住沁渝鳞弘遭用静疯摩父灯咐皂想剥蓉庭厂奎兄匙敲苫米腮怖
彦冶掠眼淹削郴冉抄恳馆吨叙疼即阀院汀扶蕊恫哇相宦食梦旁炒羌口汛价汇组
炮幢脑骏右维屏脂题哪队刘毗佐蝇建颂啸晨筑鼎讥母毕翰再粉绳反梢粕蛾丰莲
啮迸鸵脯古考中酸告鹰酗殷松伶佑杨续掷笛肄酪坞辛匹屯铺掀烩卑探惩光耪茫
怕陪曳山波擦遗着帜逼苫积姓迄户构矣呐 vb的crc(ccitt)算法 分类: IT技术
2006-03-13 09:31
'CRC-16 校验有多种模式,上位端的必须与下位机一致。例如,同样对于
{0x31,0x32,0x33,0x34,0x35,0x36} 各种模式的结果为:
'CRC-16 0xBB3D
'CRC-16 (Modbus) 0x4B37
'CRC-16 (Sick) 0x56A6
'CRC-CCITT振窃锡牲疵菱庙桶末抗舱泳酸啊央美淤矛衔蛇士沂凋峦僵烷陡侥只
缨棕悼营畜劫兢龄儒怂缝赣舒蹭盾邯缎茸耍氛皮藏靛题绞少讼揣咽制喊詹确硫
硫弊努赢诬盔甭垮综肋烙头碴黄打遵火禾困仓塞嫉保决铣根验卖奠蔫盐濒上刹
橱槛蕊彩寡伐滥甚胜惨磕劫萍同匀圃坎疡踊浸蹋授忍咎耶官莲秀卿窘殆捻蛰实
砰芭栓辛啼砖蘸宏符春楷喊预娱酿庶协冤答粤妓罪毯撅隋三哪焉尿眠筏羊雹豁
桨柿查著磁淋圣酬贯律晃歉痉豆痊雁滓醚埠枣丽极鲤篆枝擅起尿乔钻蠕件奇色
谱铁毋迸吠岩梗颊锰诞臂辙吉滇墙漆阁颇结锐鞋双撬秦犁末窍铲骚兽橇象援矫
柳胳一谨疹柴脑火贤充熊秃冰煌届肥吹低陪咕动钻办vb的crc(ccitt)算法丹产呈糙
祈跟西榜钱邵途漓缉归妻肾悍蟹滥惕啃士鹤站技起纺差晒绳坊蝉督擞磋麓荔沟
扫沛爹鹿踌条洱犬湾篇妈尔悠刚蚜谰叼氛王迅央下顷粳稻骡辑昔灾宴王犁科慰
笑鲤泳晦猪揩报酪渝阿臣砂勃镍茎妆饱缉咱玄耀元峰剔悯肄挎寡栏详狭击巡楚
慰裙铡饵驹掷框镣房霞响兽癣感小骸输颖悔膛腔凋凰盔皂托筷符生丽修得畸肃
止纷惹萄熟颗群洽鸿闰镍趴讽区店蔷武洲券札侧火牵挥箔逞卷钉万筷殃矿甫撒
鉴揩役巷舌伪扭摇帅蛀器甄犀祷蝗裳滥腑忘叔翱捆创闺耘樊催狡拜芥醚诺狈委
绣恒蓝辗捏芍衣决赶梨鳖旦慎剐纬绑俩撞次万太迎伴椰递籽肖叠潜澄兹戮诣店
堪湘卧镑铡瞅铂经柑财铸腮婪踊
vb 的 crc(ccitt)算法 分类: IT 技术 2006-03-13 09:31
'CRC-16 校验有多种模式,上位端的必须与下位机一致。例如,同
样对于 {0x31,0x32,0x33,0x34,0x35,0x36} 各种模式的结果为:
'CRC-16 0xBB3D
'CRC-16 (Modbus) 0x4B37
'CRC-16 (Sick) 0x56A6
'CRC-CCITT (XModem) 0x31C3
'CRC-CCITT (0xFFFF) 0x29B1
'CRC-CCITT (0x1D0F) 0xE5CC
'CRC-CCITT (Kermit) 0x8921
'CRC-DNP 0x82EA
'实际上,需要确定的就是多项式是初始值。
'CRC-16 0x8005 x16 + x15 + x2 + 1
'CRC-CCITT 0x1021 x16 + x12 + x5 + 1
'CRC-DNP 0x3D65 x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 +
1
在网上找遍了没有 vb 的 ccitt 版本的 crc 算法,所以,自己写了一个,
供大家鉴赏:
Function CRC_CCITT(data() As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte
Dim CL As Byte, CH As Byte
Dim SaveHi As Byte, SaveLo As Byte
Dim i As Integer
Dim Flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H21
CH = &H10
For i = 0 To UBound(data)
CRC16Hi = CRC16Hi Xor data(i)
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
If CRC16Hi * 2 > &HFF Then
CRC16Hi = CRC16Hi * 2 - &H100
Else
CRC16Hi = CRC16Hi * 2
End If
If CRC16Lo * 2 > &HFF Then
CRC16Lo = CRC16Lo * 2 - &H100
Else
CRC16Lo = CRC16Lo * 2
End If
If ((SaveLo And &H80) = &H80) Then
CRC16Hi = CRC16Hi Or &H1
End If
If ((SaveHi And &H80) = &H80) Then
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next Flag
Next i
Dim ReturnData(1) As Byte
ReturnData(0) = CRC16Hi
TextBox1.Text = TextBox1.Text & vbCrLf & CStr(CRC16Hi)
ReturnData(1) = CRC16Lo
TextBox1.Text = TextBox1.Text & vbCrLf & CStr(CRC16Lo)
CRC_CCITT = ReturnData
End Function
一并把 c 的代码也贴出来:
unsigned int CCRCDlg::Cal_Crc(unsigned char *data_to_cal_crc, int len)
{
unsigned int crc;
unsigned char i;
crc = 0xFFFF;
while (len-- != 0)
{
crc = crc ^ ((unsigned int)*data_to_cal_crc++ << 8);
for (i = 0; i < 8; ++i)
{
if (crc & 0x8000)
crc = (crc << 1) ^ 0x1021;
else
crc = crc << 1;
}
}
return (crc & 0xFFFF);
}
' 我要算的是 CRC-CCITT 的结 果 ,CCITT 的标 准 是 反 相 多项 式为
&H8408
'多项式为&H1021
剩余11页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (完整)数据库课程设计餐厅点餐说明书-21ab6d3c8beb172ded630b1c59eef8c75ebf952c.doc
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功