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

📄 len2.frm

📁 串口通讯
💻 FRM
📖 第 1 页 / 共 3 页
字号:
    auchCRCLo(42) = &HDF
    auchCRCLo(43) = &H1F
    auchCRCLo(44) = &HDD

    auchCRCLo(45) = &H1D
    auchCRCLo(46) = &H1C
    auchCRCLo(47) = &HDC
    auchCRCLo(48) = &H14
    auchCRCLo(49) = &HD4
    auchCRCLo(50) = &HD5
    auchCRCLo(51) = &H15
    auchCRCLo(52) = &HD7
    auchCRCLo(53) = &H17
    auchCRCLo(54) = &H16
    auchCRCLo(55) = &HD6
    auchCRCLo(56) = &HD2
    auchCRCLo(57) = &H12
    auchCRCLo(58) = &H13
    auchCRCLo(59) = &HD3

    auchCRCLo(60) = &H11
    auchCRCLo(61) = &HD1
    auchCRCLo(62) = &HD0
    auchCRCLo(63) = &H10
    auchCRCLo(64) = &HF0
    auchCRCLo(65) = &H30
    auchCRCLo(66) = &H31
    auchCRCLo(67) = &HF1
    auchCRCLo(68) = &H33
    auchCRCLo(69) = &HF3
    auchCRCLo(70) = &HF2
    auchCRCLo(71) = &H32
    auchCRCLo(72) = &H36
    auchCRCLo(73) = &HF6
    auchCRCLo(74) = &HF7
    
    auchCRCLo(75) = &H37
    auchCRCLo(76) = &HF5
    auchCRCLo(77) = &H35
    auchCRCLo(78) = &H34
    auchCRCLo(79) = &HF4
    auchCRCLo(80) = &H3C
    auchCRCLo(81) = &HFC
    auchCRCLo(82) = &HFD
    auchCRCLo(83) = &H3D
    auchCRCLo(84) = &HFF
    auchCRCLo(85) = &H3F
    auchCRCLo(86) = &H3E
    auchCRCLo(87) = &HFE
    auchCRCLo(88) = &HFA
    auchCRCLo(89) = &H3A
    
    auchCRCLo(90) = &H3B
    auchCRCLo(91) = &HFB
    auchCRCLo(92) = &H39
    auchCRCLo(93) = &HF9
    auchCRCLo(94) = &HF8
    auchCRCLo(95) = &H38
    auchCRCLo(96) = &H28
    auchCRCLo(97) = &HE8
    auchCRCLo(98) = &HE9
    auchCRCLo(99) = &H29
    auchCRCLo(100) = &HEB
    auchCRCLo(101) = &H2B
    auchCRCLo(102) = &H2A
    auchCRCLo(103) = &HEA
    auchCRCLo(104) = &HEE

    auchCRCLo(105) = &H2E
    auchCRCLo(106) = &H2F
    auchCRCLo(107) = &HEF
    auchCRCLo(108) = &H2D
    auchCRCLo(109) = &HED
    auchCRCLo(110) = &HEC
    auchCRCLo(111) = &H2C
    auchCRCLo(112) = &HE4
    auchCRCLo(113) = &H24
    auchCRCLo(114) = &H25
    auchCRCLo(115) = &HE5
    auchCRCLo(116) = &H27
    auchCRCLo(117) = &HE7
    auchCRCLo(118) = &HE6
    auchCRCLo(119) = &H26
    
    auchCRCLo(120) = &H22
    auchCRCLo(121) = &HE2
    auchCRCLo(122) = &HE3
    auchCRCLo(123) = &H23
    auchCRCLo(124) = &HE1
    auchCRCLo(125) = &H21
    auchCRCLo(126) = &H20
    auchCRCLo(127) = &HE0
    auchCRCLo(128) = &HA0
    auchCRCLo(129) = &H60
    auchCRCLo(130) = &H61
    auchCRCLo(131) = &HA1
    auchCRCLo(132) = &H63
    auchCRCLo(133) = &HA3
    auchCRCLo(134) = &HA2
    
    auchCRCLo(135) = &H62
    auchCRCLo(136) = &H66
    auchCRCLo(137) = &HA6
    auchCRCLo(138) = &HA7
    auchCRCLo(139) = &H67
    auchCRCLo(140) = &HA5
    auchCRCLo(141) = &H65
    auchCRCLo(142) = &H64
    auchCRCLo(143) = &HA4
    auchCRCLo(144) = &H6C
    auchCRCLo(145) = &HAC
    auchCRCLo(146) = &HAD
    auchCRCLo(147) = &H6D
    auchCRCLo(148) = &HAF
    auchCRCLo(149) = &H6F
    
    auchCRCLo(150) = &H6E
    auchCRCLo(151) = &HAE
    auchCRCLo(152) = &HAA
    auchCRCLo(153) = &H6A
    auchCRCLo(154) = &H6B
    auchCRCLo(155) = &HAB
    auchCRCLo(156) = &H69
    auchCRCLo(157) = &HA9
    auchCRCLo(158) = &HA8
    auchCRCLo(159) = &H68
    auchCRCLo(160) = &H78
    auchCRCLo(161) = &HB8
    auchCRCLo(162) = &HB9
    auchCRCLo(163) = &H79
    auchCRCLo(164) = &HBB
    
    auchCRCLo(165) = &H7E
    auchCRCLo(166) = &H7A
    auchCRCLo(167) = &HBA
    auchCRCLo(168) = &HBE
    auchCRCLo(169) = &H7E
    auchCRCLo(170) = &H7F
    auchCRCLo(171) = &HBF
    auchCRCLo(172) = &H7D
    auchCRCLo(173) = &HBD
    auchCRCLo(174) = &HBC
    auchCRCLo(175) = &H7C
    auchCRCLo(176) = &HB4
    auchCRCLo(177) = &H74
    auchCRCLo(178) = &H75
    auchCRCLo(179) = &HB5
    
    auchCRCLo(180) = &H77
    auchCRCLo(181) = &HB7
    auchCRCLo(182) = &HB6
    auchCRCLo(183) = &H76
    auchCRCLo(184) = &H72
    auchCRCLo(185) = &HB2
    auchCRCLo(186) = &HB3
    auchCRCLo(187) = &H73
    auchCRCLo(188) = &HB1
    auchCRCLo(189) = &H71
    auchCRCLo(190) = &H70
    auchCRCLo(191) = &HB0
    auchCRCLo(192) = &H50
    auchCRCLo(193) = &H90
    auchCRCLo(194) = &H91
    
    auchCRCLo(195) = &H51
    auchCRCLo(196) = &H93
    auchCRCLo(197) = &H53
    auchCRCLo(198) = &H52
    auchCRCLo(199) = &H92
    auchCRCLo(200) = &H96
    auchCRCLo(201) = &H56
    auchCRCLo(202) = &H57
    auchCRCLo(203) = &H97
    auchCRCLo(204) = &H55
    auchCRCLo(205) = &H95
    auchCRCLo(206) = &H94
    auchCRCLo(207) = &H54
    auchCRCLo(208) = &H9C
    auchCRCLo(209) = &H5C
    
    auchCRCLo(210) = &H5D
    auchCRCLo(211) = &H9D
    auchCRCLo(212) = &H5F
    auchCRCLo(213) = &H9F
    auchCRCLo(214) = &H9E
    auchCRCLo(215) = &H5E
    auchCRCLo(216) = &H5A
    auchCRCLo(217) = &H9A
    auchCRCLo(218) = &H9B
    auchCRCLo(219) = &H5B
    auchCRCLo(220) = &H99
    auchCRCLo(221) = &H59
    auchCRCLo(222) = &H58
    auchCRCLo(223) = &H98
    auchCRCLo(224) = &H88
    
    auchCRCLo(225) = &H48
    auchCRCLo(226) = &H49
    auchCRCLo(227) = &H89
    auchCRCLo(228) = &H4B
    auchCRCLo(229) = &H8B
    auchCRCLo(230) = &H8A
    auchCRCLo(231) = &H4A
    auchCRCLo(232) = &H4E
    auchCRCLo(233) = &H8E
    auchCRCLo(234) = &H8F
    auchCRCLo(235) = &H4F
    auchCRCLo(236) = &H8D
    auchCRCLo(237) = &H4D
    auchCRCLo(238) = &H4C
    auchCRCLo(239) = &H8C
    
    auchCRCLo(240) = &H44
    auchCRCLo(241) = &H84
    auchCRCLo(242) = &H85
    auchCRCLo(243) = &H45
    auchCRCLo(244) = &H87
    auchCRCLo(245) = &H47
    auchCRCLo(246) = &H46
    auchCRCLo(247) = &H86
    auchCRCLo(248) = &H82
    auchCRCLo(249) = &H42
    auchCRCLo(250) = &H43
    auchCRCLo(251) = &H83
    auchCRCLo(252) = &H41
    auchCRCLo(253) = &H81
    auchCRCLo(254) = &H80
    
    auchCRCLo(255) = &H40
    
    '计算字符串长度
    lenth = ln + 1 ' Len(checkstr)
    For i = 1 To lenth
        'onechr = Val(Asc(Mid$(checkstr, i, 1)))
        onechr = checkstr(i - 1)
        uIndex = uchCRCHi Xor onechr
        uchCRCHi = uchCRCLo Xor auchCRCHi(uIndex)
        uchCRCLo = auchCRCLo(uIndex)
    Next
    
    HiByte = uchCRCHi
    LoByte = uchCRCLo

End Sub

Private Sub Check1_Click()
    If Check1.Value = 0 Then
        Check1.Caption = "写数据"
       Command1(0).Enabled = True
    Else
        Check1.Caption = "读数据"
    End If
End Sub


Private Sub Command1_Click(Index As Integer)
    Select Case Index:
    Case 0:
        
        Command1(0).Enabled = False
        'Command1(1).Enabled = True
        Check1.Value = 1
       
    Case 1:
        Timer1.Enabled = False
        End
        
        
    End Select
End Sub


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
       Case vbKeyF1
        Command1(0).Enabled = False
        'Command1(1).Enabled = True
        Check1.Value = 1
       Case vbKeyEscape
        Timer1.Enabled = False
        End
End Select
End Sub

Private Sub Form_Load()
    
    
    MSComm1.Settings = "19200,n,8,1"
        '"9600,e,8,1"
        MSComm1.CommPort = 1
        MSComm1.InputLen = 0
        If Not MSComm1.PortOpen Then MSComm1.PortOpen = True
        MSComm1.OutBufferCount = 0
    
   Timer1.Enabled = True
End Sub



Private Sub Timer1_Timer()
Dim strr() As Long

If Check1.Value Then
   ' Timer1.Interval = 500
    Dim SendStr(7) As Byte
    Dim RcvStr() As Byte
    SendStr(0) = &H1 'Val(Text2.Text)
    SendStr(1) = &H3
    SendStr(2) = &H0 'Int(Val(Text3.Text) / 256) '&H0
    SendStr(3) = &H64 'Val(Text3.Text) Mod 256
    SendStr(4) = &H0
    SendStr(5) = &H14 'Val(Text4.Text)
        
    'ReadMWStr = Chr$(Val(Text2.Text)) & Chr$(&H3) & Chr$(&H0) & Chr$(Text3.Text) & Chr$(&H0) & Chr$(Val(Text4.Text))
    'ReadMWStr = Chr$(&H1) & Chr$(&H3) & Chr$(&H0) & Chr$(&H0) & Chr$(&H0) & Chr$(&H1)
    
    Call CRC16(SendStr(), 5) 'ReadMWStr)
    SendStr(6) = HiByte
    SendStr(7) = LoByte
       
    MSComm1.InBufferCount = 0
    MSComm1.Output = SendStr
    
    Do
        i = i + 1 '通讯终止时跳出
        For j = 1 To 10000
        Next
        ' 如果缓冲区非空,则读出
        If MSComm1.InBufferCount >= (5 + 20 * 2) Then
            LenOfReturn = MSComm1.InBufferCount
            RcvStr = MSComm1.Input
            Beep
                 '****
            Exit Do
        End If
    If i > 1000 Then Exit Sub
    Loop
    
    For k = 3 To LenOfReturn - 3
        tmpstr = tmpstr & "/" & Hex(RcvStr(k)) '& "/" & RcvStr(1) & "/" & RcvStr(2) & "/" & RcvStr(3) & "/" & RcvStr(4) & "/" & RcvStr(5) & "/" & RcvStr(6)
    Next
    Text1.Text = tmpstr
   Text6(0).Text = RcvStr(3) * 256 + RcvStr(4)
   Text6(1).Text = RcvStr(5) * 256 + RcvStr(6)
   Text6(2).Text = RcvStr(7) * 256 + RcvStr(8)
   Text6(3).Text = RcvStr(9) * 256 + RcvStr(10)
   Text6(4).Text = RcvStr(11) * 256 + RcvStr(12)
   Text6(5).Text = RcvStr(13) * 256 + RcvStr(14)
    
   Text6(6).Text = RcvStr(15) * 256 + RcvStr(16)
   Text6(7).Text = RcvStr(17) * 256 + RcvStr(18)
   Text6(8).Text = RcvStr(19) * 256 + RcvStr(20)
   Text6(9).Text = RcvStr(21) * 256 + RcvStr(22)
   Text6(10).Text = RcvStr(23) * 256 + RcvStr(24)
   Text6(11).Text = RcvStr(25) * 256 + RcvStr(26)
   Text6(12).Text = RcvStr(27) * 256 + RcvStr(28)
   
   Text6(13).Text = RcvStr(29) * 256 + RcvStr(30)
   Text6(14).Text = RcvStr(31) * 256 + RcvStr(32)
   Text6(15).Text = RcvStr(33) * 256 + RcvStr(34)
   Text6(16).Text = RcvStr(35) * 256 + RcvStr(36)
   Text6(17).Text = RcvStr(37) * 256 + RcvStr(38)
   
   Label2.Caption = RcvStr(39) * 256 + RcvStr(40)
   Text2.Text = RcvStr(41) * 256 + RcvStr(42)
  
Else
   'Timer1.Interval = 2500
   Dim WriteStr() As Byte
   ' k = Len(Text5.Text) / 3
   ' If k = 0 Then Exit Sub
    ReDim WriteStr(9 + 20 * 2 - 1)
    'Dim RcvStr() As Byte
    WriteStr(0) = &H1 ' Hex(Text2.Text)
    WriteStr(1) = &H10
    WriteStr(2) = &H0 'Hex(Int(Val(Text3.Text) / 256)) '&H0
    WriteStr(3) = &H64 'Hex(Text3.Text) Mod 256
    WriteStr(4) = &H0 'Hex(Int(Val(Text4.Text) / 256)) '&H0
    WriteStr(5) = &H14 'Hex(Text4.Text)
    
    WriteStr(6) = &H28 ' Hex(Val(Text4.Text) * 2)
  
   
    WriteStr(7) = Int(Val(Text6(0).Text) / 256)
    WriteStr(8) = Val(Text6(0).Text) Mod 256
    WriteStr(9) = Int(Val(Text6(1).Text) / 256)
    WriteStr(10) = Val(Text6(1).Text) Mod 256
    WriteStr(11) = Int(Val(Text6(2).Text) / 256)
    WriteStr(12) = Val(Text6(2).Text) Mod 256
    WriteStr(13) = Int(Val(Text6(3).Text) / 256)
    WriteStr(14) = Val(Text6(3).Text) Mod 256
    WriteStr(15) = Int(Val(Text6(4).Text) / 256)
    WriteStr(16) = Val(Text6(4).Text) Mod 256
    WriteStr(17) = Int(Val(Text6(5).Text) / 256)
    WriteStr(18) = Val(Text6(5).Text) Mod 256
    WriteStr(19) = Int(Val(Text6(6).Text) / 256)
    WriteStr(20) = Val(Text6(6).Text) Mod 256
    WriteStr(21) = Int(Val(Text6(7).Text) / 256)
    WriteStr(22) = Val(Text6(7).Text) Mod 256
    WriteStr(23) = Int(Val(Text6(8).Text) / 256)
    WriteStr(24) = Val(Text6(8).Text) Mod 256
    WriteStr(25) = Int(Val(Text6(9).Text) / 256)
    WriteStr(26) = Val(Text6(9).Text) Mod 256
    WriteStr(27) = Int(Val(Text6(10).Text) / 256)
    WriteStr(28) = Val(Text6(10).Text) Mod 256
    WriteStr(29) = Int(Val(Text6(11).Text) / 256)
    WriteStr(30) = Val(Text6(11).Text) Mod 256
    WriteStr(31) = Int(Val(Text6(12).Text) / 256)
    WriteStr(32) = Val(Text6(12).Text) Mod 256
    WriteStr(33) = Int(Val(Text6(13).Text) / 256)
    WriteStr(34) = Val(Text6(13).Text) Mod 256
    WriteStr(35) = Int(Val(Text6(14).Text) / 256)
    WriteStr(36) = Val(Text6(14).Text) Mod 256
    WriteStr(37) = Int(Val(Text6(15).Text) / 256)
    WriteStr(38) = Val(Text6(15).Text) Mod 256
    WriteStr(39) = Int(Val(Text6(16).Text) / 256)
    WriteStr(40) = Val(Text6(16).Text) Mod 256
    WriteStr(41) = Int(Val(Text6(17).Text) / 256)
    WriteStr(42) = Val(Text6(17).Text) Mod 256
    
    WriteStr(43) = Int(Val(Label2.Caption) / 256)
    WriteStr(44) = Val(Label2.Caption) Mod 256
    WriteStr(45) = Int(Val(Text2.Text) / 256)
    WriteStr(46) = Val(Text2.Text) Mod 256
  
    
    Call CRC16(WriteStr(), 6 + 20 * 2)
    WriteStr(9 + (20 - 1) * 2) = HiByte
    WriteStr(10 + (20 - 1) * 2) = LoByte
       
    MSComm1.InBufferCount = 0
    MSComm1.Output = WriteStr
    
    Do
        i = i + 1 '通讯终止时跳出
        For j = 1 To 10000
        Next
        ' 如果缓冲区非空,则读出
        If MSComm1.InBufferCount Then '>= (5 + Val(Text4.Text) * 2) Then
            LenOfReturn = MSComm1.InBufferCount
            RcvStr = MSComm1.Input
            Beep
                 '****
            Exit Do
        End If
    If i > 1000 Then Exit Sub
    Loop
    
    For k = 0 To LenOfReturn - 1
        tmpstr = tmpstr & "/" & RcvStr(k) '& "/" & RcvStr(1) & "/" & RcvStr(2) & "/" & RcvStr(3) & "/" & RcvStr(4) & "/" & RcvStr(5) & "/" & RcvStr(6)
    Next
   ' If Left$(tmpstr, 6) = "/1/16/" Then Check1.Value = 1
    Text1.Text = tmpstr
    'Debug.Print RcvStr
End If

End Sub


⌨️ 快捷键说明

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