串口问题
以下是VB的源码,移到ACCESS中无法读出串口的数据,请各位高人指点,源码如何上传?
Private Sub Command读温度_Click()
Dim Bsend8(7) As Byte 'Tx 1 byte command
Dim Write_timer As Long
Dim recie As String
Dim nsum As Integer
Dim IngN路 As Integer, Ibuf As Long
Dim I As Integer
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.PortOpen = True
Bsend8(0) = Val("&H1") '&H14 'F5 '14 '模块号,每个模块带8个传感器
Bsend8(1) = &HF2 '
Bsend8(2) = 2 * 8 '+ 1 ' &H11 '&HB '传感器路数
'Bsend8(2) = 2 * Me.TxtN路 '+ 1 ' &H11 '&HB
Bsend8(3) = &H50 ' &H50 '
Bsend8(4) = &H4 '
Bsend8(5) = &H5
Bsend8(6) = &H6 '
nsum = Val(Bsend8(0)) + Val(Bsend8(1)) + Val(Bsend8(2)) + Val(Bsend8(3)) + _
Val(Bsend8(4)) + Val(Bsend8(5)) + Val(Bsend8(6)) '数据类型转换并求和
Bsend8(7) = nsum Mod 256 '除256取余数,本例校验和=&H51,十进制81
Ing收记数 = 0
' Me.MSComm1.DTREnable = False
Text2.SetFocus
Text2.SelText = "" & vbCrLf
MSComm1.Output = Bsend8
Write_timer = Timer
Do While Timer < Write_timer + 2
'DoEvents '在2秒的等待中,不允许串口中断处理,否则等待不会有结果
If Me.MSComm1.InBufferCount <> 0 Then
recie = MSComm1.Input
rex = AscB(recie) '''''
IngN路 = Int(Ing收记数 / 2)
If Ing收记数 <> 2 * Int(Ing收记数 / 2) Then
Ibuf = 256 * rex + tem0
If Ibuf >= 32768 Then Ibuf = Ibuf - 65536
Text2.SelText = Now() & " - " & I & " - " & 0.01 * Ibuf & vbCrLf
End If
Ing收记数 = Ing收记数 + 1
tem0 = rex
If Ing收记数 = Bsend8(2) + 1 Then Exit Do
End If
Loop
'timer over error
If Timer >= Write_timer + 2 Then
MsgBox "串口通信故障!", vbExclamation
Exit Sub
End If
End Sub
Private Sub MSComm1_OnComm()
Dim reaaa As String
Do Until MSComm1.InBufferCount = 0
reaaa = MSComm1.Input
rex = AscB(reaaa)
Text10.SelText = Hex(rex)
Text10.SelText = " "
Loop
End Sub