⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vb_crc.txt

📁 计算程序。可以通过它来进行CRC的校验计算。可以将十六进制数转化为十进制数据
💻 TXT
字号:
Private Sub Command1_Click()
      Dim CRC() As Byte
      Dim d() As Byte '待传输数据
      ReDim d(6) As Byte
      d(0) = &H5
      d(1) = &H3
      d(2) = &H7
      d(3) = &H0
      d(4) = &H0
      d(5) = &H39
      CRC = CRC16(d) '调用CRC16计算函数
      'CRC(0)为高位
      'CRC(1)为低位
    End Sub
    '注意:在数据传输时CRC的低位可能在前,而高位在后。

    Function CRC16(data() 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 i As Integer
      Dim Flag As Integer
      CRC16Lo = &HFF
      CRC16Hi = &HFF
      CL = &H1
      CH = &HA0
      For i = 0 To 5
        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
      Dim ReturnData(1) As Byte
      ReturnData(1) = CRC16Lo              'CRC低位(前一位)
      ReturnData(0) = CRC16Hi              'CRC高位(后一位)
      CRC16 = ReturnData
    End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -