现在想在电脑中每隔一定的时间间隔记录电子称数据,以十进制形式显示在文本中,记录形式为:(时间,质量)
以前根本没有学过VB,现在遇到这个问题,所以就在网上搜了一个程序,想自己先试着理解下VB中关于串口通讯的问题,程序如下:
Option Explicit
Dim strss As String
Private Sub Command1_Click() '开始接收
Label1.Caption = " "
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
If MSComm1.PortOpen = False Then
MSComm1.CommPort = 1 '串口号,
MSComm1.Settings = "2400,n,8,1 " '串口的属性
MSComm1.InputLen = 0
MSComm1.RThreshold = 10
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True '打开通信串口
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
End If
Print MSComm1.PortOpen
End Sub
Private Sub MSComm1_OnComm()
Dim k, i, j As Integer
'Dim myarray() As Byte既然以文本模式接收,则无须用Byte数组来获取数据
Select Case MSComm1.CommEvent
Case comEvReceive
k = MSComm1.InBufferCount
If k = 0 Then
Exit Sub
End If
ReDim myarray(k - 1)
strss = MSComm1.Input
'j = 0
'For i = 0 To UBound(myarray) ' ' ' ' ' '每一组为10 个字节
'j = j + 1
'strss = strss & Chr(myarray(i))
'If j = 10 Then
Label1.Caption = Val(Mid(StrReverse(strss), 2, 8))
strss = ""
'j = 0
'End If
'Next
Case comEvSend
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
End Select
End Sub
Private Sub Command2_Click() '停止接收
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End Sub
点击VB界面“启动”后,我点击command1 然后在form1窗口出现true
然后就没有反应了
这是什么问题?
如果想达到我上述的目的,文本记录质量随时间变化这样的形式,有没有人帮忙写下代码?非常感谢!!