📄 form1.frm
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3690
ClientLeft = 60
ClientTop = 450
ClientWidth = 7455
LinkTopic = "Form1"
ScaleHeight = 3690
ScaleWidth = 7455
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command4
Caption = "测试时用到的"
Height = 495
Left = 1920
TabIndex = 3
Top = 1920
Width = 1335
End
Begin VB.CommandButton Command3
Caption = "发送"
Height = 375
Left = 5280
TabIndex = 2
Top = 2040
Width = 615
End
Begin MSCommLib.MSComm MSComm1
Left = 0
Top = 3600
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin VB.TextBox txtJS
Height = 855
Left = 1200
TabIndex = 1
Top = 2640
Width = 5415
End
Begin VB.TextBox txtFS
Height = 975
Left = 1200
TabIndex = 0
Top = 840
Width = 5295
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command3_Click()
Dim i As Integer
Dim strData As String
Dim brece() As Byte
buffer = Change(Trim(txtFS.Text))
MSComm1.Output = buffer
dblEndTime = Timer + 1
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '滑空接收缓冲区
MSComm1.InputMode = comInputModeBinary
Do While dblEndTime > Timer
DoEvents
Loop
ReDim brece(MSComm1.InBufferCount)
brece = MSComm1.Input
For i = LBound(brece) To UBound(brece)
If Len(Hex(brece(i))) = 1 Then
strData = strData & "0" & Hex(brece(i))
Else
strData = strData & Hex(brece(i))
End If
'02 54 01 04 40 01 30 4B 03
Next
txtJS.Text = strData
End Sub
Private Function Change(temStr As String)
Dim data() As Byte
Dim temS As String
For i = 1 To Len(temStr)
If Mid(temStr, i, 1) = " " Then
Else
temS = temS & Mid(temStr, i, 1)
End If
Next i
ReDim data(Len(temS)) As Byte
For j = 1 To Len(temS)
If j Mod 2 = 0 Then
data(Int((j - 1) / 2)) = data(Int((j - 1) / 2)) + ConvertHexChr(Mid(temS, j, 1))
Else
data(Int((j - 1) / 2)) = data(Int((j - 1) / 2)) + ConvertHexChr(Mid(temS, j, 1)) * 16
End If
Next j
Change = data
End Function
Private Function ConvertHexChr(Str As String)
Dim test As Integer
test = Asc(Str)
If test >= Asc("0") And test <= Asc("9") Then
test = test - Asc("0")
ElseIf test >= Asc("a") And test <= Asc("f") Then
test = test - Asc("a") + 10
ElseIf test >= Asc("A") And test <= Asc("F") Then
test = test - Asc("A") + 10
Else
test = -1 '出错信息
End If
ConvertHexChr = test
End Function
Private Sub Command4_Click()
Dim buffer As Variant
Dim data(19) As Byte, brece() As Byte
Dim i As Integer
Dim strData As String
'02 54 01 01 05 40 01 4A 81 E5 03 02 54 01 04 40 01 30 4B 03
data(0) = &H2
data(1) = &H54
data(2) = &H1
data(3) = &H1
data(4) = &H5
data(5) = &H40
data(6) = &H1
data(7) = &H4A
data(8) = &H81
data(9) = &HE5
data(10) = &H3
data(11) = &H2
data(12) = &H54
data(13) = &H1
data(14) = &H4
data(15) = &H40
data(16) = &H1
data(17) = &H30
data(18) = &H4B
data(19) = &H3
buffer = data
MSComm1.Output = buffer
dblEndTime = Timer + 1
Do While dblEndTime > Timer
DoEvents
Loop
ReDim brece(MSComm1.InBufferCount)
brece = MSComm1.Input
For i = LBound(brece) To UBound(brece)
If Len(Hex(brece(i))) = 1 Then
strData = strData & "0" & Hex(brece(i))
Else
strData = strData & Hex(brece(i))
End If
'02 54 01 04 40 01 30 4B 03
Next
txtJS.Text = strData
End Sub
Private Sub Form_Load()
Dim Fs() As Byte
Dim Ss() As Byte
Dim Tint As Integer
MSComm1.CommPort = 1 '设定com2
If MSComm1.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位
MSComm1.PortOpen = True '打开串口
End If
'mscomm1.InputMode
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '滑空接收缓冲区
Tint = Len(Trim(txtFS.Text))
'For i = 1 To Tint
'
'Next i
Dim sStr As String
MSComm1.InputMode = comInputModeBinary
MSComm1.Output = "025401010540014A81E503025401044001304B03"
'02 54 01 01 05 40 01 4A 81 E5 03 02 54 01 04 40 01 30 4B 03
ReDim Fs(Tint)
End Sub
'Tint = (Len("02 54 01 01 05 40 01 4A 81 E5 03 02 54 01 04 40 01 30 4B 03") + 1) / 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -