當前位置:編程學習大全網 - 源碼下載 - vb,crc校驗的程序

vb,crc校驗的程序

'Text1.Text 輸入數據

'Text2.Text 輸出數據

Dim ReturnData(1) As Byte

Private Sub Command1_Click()

Dim CRC(2) As Byte

Dim d(6) As Byte '待傳輸數據

ReDim data(7) As Byte

For i = 0 To 5

data(i) = "&h" + Mid(Text1.Text, 2 * i + 1, 2)

Debug.Print data(i)

Next i

Call CRC16(data, UBound(data) - 2, data(6), data(7)) '調用CRC16計算函數

' CRC(0)為高位

' CRC(1)為低位

End Sub

Function CRC16(data() As Byte, i As Integer, ByRef ReturnDatalo As Byte, ByRef ReturnDatahi As Byte) As String

Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器

Dim CL As Byte, CH As Byte '多項式碼&HA001

Dim SaveHi As Byte, SaveLo As Byte

Dim Flag As Integer

CRC16Lo = &HFF

CRC16Hi = &HFF

CL = &H1

CH = &HA0

For i = 0 To UBound(data) - 2

CRC16Lo = CRC16Lo Xor data(i) '每壹個數據與CRC寄存器進行異或

For Flag = 0 To 9

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

ReturnDatahi = CRC16Hi 'CRC高位

ReturnDatalo = CRC16Lo 'CRC低位

Debug.Print Hex(CRC16Lo), Hex(CRC16Hi)

Text2.Text = Text1.Text & Hex(CRC16Lo) & Hex(CRC16Hi)

End Function

  • 上一篇:如何介紹設計好的網站模板的地址以及如何介紹設計好的網站模板的地址和名稱
  • 下一篇:關於智能機的解釋
  • copyright 2024編程學習大全網