电子秤串口数据
大约 1 分钟vb6硬件串口
案例
'初始化串口设备
Private Sub InitComm()
' 设置MSComm控件的属性
MSComm1.CommPort = 3 ' 串口号,根据实际情况设置
Dim settingString As String
dim baudRate as Integer
baudRate = 9600
'使用波特率构建串口设备设置参数
settingString = baudRate & ",n,8,1"
MSComm1.Settings = settingString ' 波特率, 校验位, 数据位, 停止位
MSComm1.InputMode = comInputModeText ' 文本模式
'一般耀华白色秤传递来的数据是:wn00004.23kg
'即一个完整数据的长度是12,那么下面的属性就设置该长度
'表示当串口设备接收缓冲区中的数据长度是12个字符后就从其中读取出来
MSComm1.RThreshold = 12 ' 设置触发事件的字符数
' 打开串口
MSComm1.PortOpen = True
' 启用MSComm控件的OnComm事件
MSComm1.RTSEnable = True
MSComm1.DTREnable = True
MSComm1.Handshaking = comRTS
' 设置RTS和DTR控制
'MSComm1.RTS = True
'MSComm1.DTR = True
End Sub
'在响应事件中获取数据
Private Sub MSComm1_OnComm()
Dim receivedData As String
' 判断事件类型
Select Case MSComm1.CommEvent
Case comEvReceive ' 接收到数据事件
' 读取接收到的数据
receivedData = MSComm1.Input
Dim kilo As Double
kilo = ParseKilo(receivedData)
'MsgBox "转换后的数字是:" & kilo
Text1.Text = kilo
End Select
End Sub
'将接收到的数据清除非数字字符后返回
Private Function ParseKilo(ByVal receivedData As String) As Double
Dim kiloString As String
kiloString = RemoveNonNumericCharacters(receivedData)
ParseKilo = Val(kiloString)
End Function
'清除字符串中非数字的字符
Function RemoveNonNumericCharacters(inputString As String) As String
Dim resultString As String
Dim i As Integer
Dim currentChar As String
' 初始化结果字符串
resultString = ""
' 遍历输入字符串的每个字符
For i = 1 To Len(inputString)
currentChar = Mid(inputString, i, 1)
' 检查字符是否为数字
If IsNumeric(currentChar) Then
' 如果是数字,则添加到结果字符串
resultString = resultString & currentChar
End If
Next i
' 返回结果字符串
RemoveNonNumericCharacters = resultString
End Function
