欢迎来到天天文库
浏览记录
ID:48359467
大小:16.08 KB
页数:2页
时间:2019-11-26
《crc16校验程序vb2010.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、完整利用vs2013编辑出来的。首先创建button1组件及TextBox1组件。双击button1进入编辑之后如下:Dimstrs=TextBox1.Text.Split("")DimCRC()AsByteDimd(strs.Count-1)AsByte'待传输数据Fori=0Tostrs.Count-1d(i)=Convert.ToInt16(strs(i),16)NextCRC=CRC16(d)'调用CRC16计算函数MsgBox(CRC(1).ToString("x2")&CRC(0).ToString("x2"))'CRC(0
2、)为高位'CRC(1)为低位EndSub' FunctionCRC16(data()AsByte)AsByte()DimCRC16LoAsByte,CRC16HiAsByte'CRC寄存器DimCLAsByte,CHAsByte'多项式码&HA001DimSaveHiAsByte,SaveLoAsByteDimiAsIntegerDimFlagAsIntegerCRC16Lo=&HFFCRC16Hi=&HFFCL=&H1CH=&HA0Fori=0ToUBound(data)CRC16Lo=CRC16LoXordata(i)'每一个数据与
3、CRC寄存器进行异或ForFlag=0To7SaveHi=CRC16HiSaveLo=CRC16LoCRC16Hi=CRC16Hi2'高位右移一位CRC16Lo=CRC16Lo2'低位右移一位If((SaveHiAnd&H1)=&H1)Then'如果高位字节最后一位为1CRC16Lo=CRC16LoOr&H80'则低位字节右移后前面补1EndIf'否则自动补0If((SaveLoAnd&H1)=&H1)Then'如果LSB为1,则与多项式码进行异或CRC16Hi=CRC16HiXorCHCRC16Lo=CRC16LoXorCLEnd
4、IfNextFlagNextiDimReturnData(1)AsByteReturnData(0)=CRC16Hi'CRC高位ReturnData(1)=CRC16Lo'CRC低位CRC16=ReturnDataEndFunctionEndClass
此文档下载收益归作者所有