用串口调试工具运行没问题!!! 完整的代码: Private Sub cmdClear_Click() lb1Receive.Caption = "" End Sub
Private Sub CmdExit_Click() Comm1.PortOpen = False End End Sub
Private Sub Comm1_OnComm() Dim databyte() As Byte, x_byte(4 To 7) AsInteger, s Dim i As Integer, t As Long, x_value AsLong Select Case Comm1.CommEvent Case comEvCD Case comEvCTS Case comEvDSR Case comEvRing Case comEvReceive s= Comm1.Input databyte = s For i = 4 To 7 x_byte(i) = (databyte(i + 1) And &HF0) / 16 * 10 + databyte(i + 1) And &HF Next i x_value = x_byte(4) + x_byte(5) * 100 +x_byte(6) * 10000 + x_byte(7) * 1000000 If databyte(1) = 0 Then lb1Receive.Caption = x_value ElseIf databyte(1) = 1 Then lb1Receive.Caption = -x_value End If Case comEvSend End Select End Sub
Private Sub Form_Click() Print i End Sub
Private Sub Form_Load() Comm1.PortOpen = True Comm1.Output = "R" End Sub
最新回答
玩世
2024-10-02 20:32:50
我估计是接收到数据后,你中断了,数据还是接收中……这个速度很快很快,但是你的代码没有处理了,于是缓冲溢出了或者怎么了,等到你执行语句,读到的都不知是什么东西了。 您把中断放在databyte = s 这句上,s应该还能保持第一个数据。