CRC 计算.doc_第1页
CRC 计算.doc_第2页
CRC 计算.doc_第3页
CRC 计算.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Private Function CRC16(data() As Byte) As String Dim CRC16Lo As Byte, CRC16Hi As Byte CRC寄存器 Dim CL As Byte, CH As Byte 多项式码&HA001 Dim CRCLo As String, CRCHi As String Dim SaveHi As Byte, SaveLo As Byte Dim i As Integer Dim Flag As Integer CRC16Lo = &HFF CRC16Hi = &HFF CL = &H1 CH = &HA0 For i = 0 To UBound(data) CRC16Lo = CRC16Lo Xor data(i) 每一个数据与CRC寄存器进行异或 For Flag = 0 To 7 SaveHi = CRC16Hi SaveLo = CRC16Lo CRC16Hi = CRC16Hi 2 高位右移一位 CRC16Lo = CRC16Lo 2 低位右移一位 If (SaveHi And &H1) = &H1) Then 如果高位字节最后一位为1 CRC16Lo = CRC16Lo Or &H80 否则低位字节右移后前面补1 End If 否则自动补0 If (SaveLo And &H1) = &H1) Then 如果LSB为1,则与多项式码进行异或 CRC16Hi = CRC16Hi Xor CH CRC16Lo = CRC16Lo Xor CL End If Next Flag Next i If Len(Hex(CRC16Hi) = 1 Then CRCHi = 0 + Hex(CRC16Hi) Else CRCHi = Hex(CRC16Hi) End If If Len(Hex(CRC16Lo) = 1 Then CRCLo = 0 + Hex(CRC16Lo) Else CRCLo = Hex(CRC16Lo) End If CRC16 = CRCLo + CRCHiEnd Function 0|评论2009-6-12 11:19vlaoda|十级Private Sub Command1_Click()Dim 数据() As Byte Dim 校验码 As IntegerDim 字节数 As LongDim 低位 As Boolean校验码 = -1数据 = StrConv(Text1, vbFromUnicode)字节数 = UBound(数据)For i = 0 To 字节数低位 = ture For j = 1 To 8 If 低位 Then 校验码 = 校验码 Xor 数据(i) 低位 = 数据(i) And 1 数据(i) = 数据(i) 2 Next jNext iText2 = Hex(校验码)End Sub算法大概就是这样了方法 2form1-form8,8个窗体,一个模块form6Private Sub Command1_Click()Dim CRC As ByteDim s1 As StringDim lens1 As IntegerDim d() As Byte 待传输数据Dim sd() As String显示的字符Text2.Text = s1 = Replace(Text1.Text, , )lens1 = Len(s1)If lens1 Mod 2 0 Or lens1 47 And sd(i) 64 And sd(i) 96 And sd(i) 103) ThenElseMsgBox 数据输入有误!, 64, 信息提示! Text1.SetFocusExit SubEnd IfNext iReDim d(lens1 2) As ByteFor i = 0 To (lens1 2) - 1 Step 2d(i) = &H & Mid(s1, i * 2 + 1, 2)Next iCRC = d(3)For i = 4 To (lens1 2 - 1)CRC = CRC Xor d(i)Next id(lens1 2) = CRCReDim sd(lens1 2) As StringFor i = 0 To (lens1 2)If Val(d(i) 16 Thensd(i) = 0 & Hex(d(i)Elsesd(i) = Hex(d(i)End IfIf Text2.Text = ThenText2.Text = sd(i)ElseText2.Text = Text2.Text & & sd(i)End IfNext iLabel5.Caption = & lens1 2Label7.Caption = & lens1 2 + 1End SubPrivate Sub Command2_Click()Text1.Text = End SubPrivate Sub Command3_Click()Label5.Caption = & 0Label7.Caption = & 0End SubPrivate Sub Command7_Click()Unload MeForm1.ShowEnd SubPrivate Sub Command8_Click()EndEnd SubPrivate Sub Form_Load()Text1.Text = Text2.Text = Label5.Caption = & 0Label7.Caption = & 0Text3.Text = AA BB 05 FA 00 00 0C 52 A4 & Chr(13) + Chr(10) & _AA BB 07 F8 00 01 0C 00 04 00 F1 & Chr(13) + Chr(10) & _AA BB 05 FA 00 01 0C EC 1BText4.Text = AA BB 04 FB 00 00 0D F6 & Chr(13) + Chr(10) & _AA BB 09 F6 00 01 0D 00 XX XX XX XX CRCText5.Text = AA BB 08 F7 00 00 0E XX XX XX XX CRC & Chr(13) + Chr(10) & _AA BB 06 F9 00 01 0E 00 08 FEText6.Text = AA BB 0C F3 00 00 12 60 01 29 03 29 03 29 03 AA & Chr(13) + Chr(10) & _AA BB 0C F3 00 00 12 60 01 00 21 64 36 62 17 86 & Chr(13) + Chr(10) & _AA BB 05 FA 00 01 12 E7 0E & Chr(13) + Chr(10) & _AA BB 05 FA 00 01 12 00 E9Text7.Text = AA BB 05 FA 00 00 16 01 ED & Chr(13) + Chr(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论