你现在位置:首页>技术论文>软件知识>正文
VB CRC校验程序2
日期:2008-3-13 9:18:27 来源:本站整理  
点击: 作者:未知
点击【】放大字体.
1、加入了CRC校验的发送帧

************************************

——可——编——程——控-制-器-技——术——门——户

Private Sub Timer1_Timer()                     '定时发送请求

plcjs.技.术_网

Dim CRC() As Byte

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

Dim s, str As String

WW.W_PLCJS_COM-PLC-技.术_网

Dim myLo, myHi As String

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Dim i As Integer

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Dim aa() As Byte

——可——编——程——控-制-器-技——术——门——户

ReDim aa(5) As Byte                           '定义动态数组

WWW_PLC※JS_COM-PmLC-技.术_网

      aa(0) = Form1.Text1.Text

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

      aa(1) = &H3

P.L.C.技.术.网——可编程控制器技术门户

      aa(2) = &H0

WWW_P※LCJS_CO※M-PLC-技-.术_网

      aa(3) = &HA

W1WW_P4LCJS_COM-PLC-技.术_网

      aa(4) = &H0

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

      aa(5) = &H8

WWcW_PLCJS_COM-PLC-技.术_网

    CRC = CRC16(aa)                          '计算CRC

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

    str = CRC

P.L.C.技.术.网——可编程控制器技术门户

    s = ""

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

      For i = 1 To LenB(str)

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

            s = s + Hex(AscB(MidB(str, i, 1)))  

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

         Next i

WWW_PLCJS_COM-PLC-技.术_网

      myLo = Right(s, 2)

WW.W_PLCJS_COM-PLC-技.术_网

      myHi = Mid(s, 1, 2)

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

      If Len(s) < 4 Then

P.L.C.技.术.网——可编程控制器技术门户

           myHi = Mid(s, 1, 1)

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

      End If

WW.W_PLCJS_COM-PLC-技.术_网

    ReDim Preserve aa(0 To 7) As Byte

——可——编——程——控-制-器-技——术——门——户

      aa(6) = Val("&H" & myLo)                   'CRC校验高低位

WWW_P※LCJS_COM-PLC-)技.术_网

      aa(7) = Val("&H" & myHi)

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 MSComm1.OutBufferCount = 0                    '清空输出寄存器

W1WW_P4LCJS_COM-PLC-技.术_网

 MSComm1.Output = aa                           '发送数据

WWW_P※LCJS_COM-PLC-)技.术_网

End Sub

WWW_PLCJS@_COM%-PLC-技.术_网

*********************************

WWW_PLCJS_COM-PLC-技.术_网

2CRC校验程序

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

**********************************

plcjs.技.术_网

Function CRC16(data() As Byte) As String

W1WW_P4LCJS_COM-PLC-技.术_网

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

WWW_PLCJS@_COM%-PLC-技.术_网

      Dim CL As Byte, CH As Byte                '多项式码&HA001

WWW_PLCJS_COM-PLC-技.术_网

      Dim SaveHi As Byte, SaveLo As Byte

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

      Dim i As Integer

WWW_P※LCJS_CO※M-PLC-技-.术_网

      Dim Flag As Integer

WWW_PL※CJS_COM-PLC-技.术_网

      CRC16Lo = &HFF

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

      CRC16Hi = &HFF

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

      CL = &H1

WWcW_PLCJS_COM-PLC-技.术_网

      CH = &HA0

WWW_P※LCJS_CO※M-PLC-技-.术_网

      For i = 0 To UBound(data)

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

        CRC16Lo = CRC16Lo Xor data(i)           '每一个数据与CRC寄存器进行异或

W1WW_P4LCJS_COM-PLC-技.术_网

        For Flag = 0 To 7

plcjs.技.术_网

          SaveHi = CRC16Hi

WW.W_PLC※JS_C,OM-PL,C-技.术_网

          SaveLo = CRC16Lo

WW.W_PLC※JS_C,OM-PL,C-技.术_网

          CRC16Hi = CRC16Hi \ 2                '高位右移一位

WW.W_PLCJS_COM-PLC-技.术_网

          CRC16Lo = CRC16Lo \ 2                '低位右移一位

WWW_PLC※JS_COM-PmLC-技.术_网

          If ((SaveHi And &H1) = &H1) Then        '如果高位字节最后一位为1

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

            CRC16Lo = CRC16Lo Or &H80     '则低位字节右移后前面补1

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

          End If                             '否则自动补0

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

          If ((SaveLo And &H1) = &H1) Then    '如果LSB1,则与多项式码进行异或

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

            CRC16Hi = CRC16Hi Xor CH

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

            CRC16Lo = CRC16Lo Xor CL

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

          End If

WWW.PLCJS.COM——可编程控制器技术门户

        Next Flag

WW.W_PLCJS_COM-PLC-技.术_网

      Next i

WW.W_PLC※JS_C,OM-PL,C-技.术_网

      Dim ReturnData(1) As Byte

——可——编——程——控-制-器-技——术——门——户

      ReturnData(0) = CRC16Hi                   'CRC高位

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

      ReturnData(1) = CRC16Lo                   'CRC低位

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

      CRC16 = ReturnData

WWW_P※LCJS_CO※M-PLC-技-.术_网

    End Function

W1WW_P4LCJS_COM-PLC-技.术_网

*************************************

——可——编——程——控-制-器-技——术——门——户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行