MSComm1.RThreshold = 19 '每19个字节响应消息
'MSComm1.PortOpen = True '打开通信串口End Sub
Private Sub Label2_Click()End SubPrivate Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent '串口事件
    
    Case comEvReceive '接收到数据
    
 '   Timer1.Enabled = True
    rec_count = rec_count + 1
    Text2.Text = rec_count
    
    Dim Buffer As Variant '存储数据的缓冲区
    Dim numbuf(19) As Byte '数据数组
    Dim buf As Variant
    
    Dim I As Integer
    Dim Number As Long '
        Buffer = MSComm1.Input
  
  
Do Until Buffer(0) = 235 And Buffer(1) = 144 And Buffer(2) = 235 And Buffer(3) = 144 And Buffer(4) = 235 And Buffer(5) = 144
  For I = 0 To 18
buf(I) = Buffer(I)
 Next I
        For I = 0 To 17
        Buffer(I + 1) = buf(I)
 Next I
       Buffer(0) = buf(18)
 Loop
     
     
    numbuf(0) = Buffer(0)
    numbuf(1) = Buffer(1)
    numbuf(2) = Buffer(2)
    numbuf(3) = Buffer(3)
    numbuf(4) = Buffer(4)
    numbuf(5) = Buffer(5)
    numbuf(6) = Buffer(6)
    numbuf(7) = Buffer(7)
    numbuf(8) = Buffer(8)
    numbuf(9) = Buffer(9)
    numbuf(10) = Buffer(10)
    numbuf(11) = Buffer(11)
    numbuf(12) = Buffer(12)
    numbuf(13) = Buffer(13)
    numbuf(14) = Buffer(14)
    numbuf(15) = Buffer(15)
    numbuf(16) = Buffer(16)
    numbuf(17) = Buffer(17)
    numbuf(18) = Buffer(18)    
    Text1(0) = numbuf(0)
    Text1(1) = numbuf(1)
    Text1(2) = numbuf(2)
    
   
    
    Text1(3) = numbuf(3)
    Text1(4) = numbuf(4)
    Text1(5) = numbuf(5)
    Text1(6) = numbuf(6)
    Text1(7) = numbuf(7)
    Text1(8) = numbuf(8)
    Text1(9) = numbuf(9)
    Text1(10) = numbuf(10)
    Text1(11) = numbuf(11)
    Text1(12) = numbuf(12)
    Text1(13) = numbuf(13)
    Text1(14) = numbuf(14)
    Text1(15) = numbuf(15)
    Text1(16) = numbuf(16)
    Text1(17) = numbuf(17)
    Text1(18) = numbuf(18)
End Select
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
'MSComm1.PortOpen = False
End Sub
红色部分数据类型不对,该如何解决

解决方案 »

  1.   

    本帖最后由 bcrun 于 2011-01-04 10:02:28 编辑
      

  2.   

    楼主参考一下这个,串口通信代码:
    http://download.csdn.net/source/1262066
      

  3.   

    本帖最后由 bcrun 于 2011-01-06 11:43:48 编辑
      

  4.   

    Private Sub MSComm1_OnComm()
        Dim Buffer As Variant '存储数据的缓冲区
        Dim numbuf(19) As Byte '数据数组
        Dim buf() As Byte
        Dim I As Integer
        Dim Number As Long '
        Select Case MSComm1.CommEvent '串口事件
            Case comEvReceive '接收到数据
            rec_count = rec_count + 1
            Text2.Text = rec_count
            Buffer = MSComm1.Input
            Do Until Buffer(0) = 235 And Buffer(1) = 144 And Buffer(2) = 235 And Buffer(3) = 144 And Buffer(4) = 235 And Buffer(5) = 144
                For I = 0 To 18
                    buf(I) = Buffer(I)
                Next I
                For I = 0 To 17
                    Buffer(I + 1) = buf(I)
                Next I
                Buffer(0) = buf(18)
            Loop
            numbuf(0) = Buffer(0)
            numbuf(1) = Buffer(1)
            numbuf(2) = Buffer(2)
            numbuf(3) = Buffer(3)
            numbuf(4) = Buffer(4)
            numbuf(5) = Buffer(5)
            numbuf(6) = Buffer(6)
            numbuf(7) = Buffer(7)
            numbuf(8) = Buffer(8)
            numbuf(9) = Buffer(9)
            numbuf(10) = Buffer(10)
            numbuf(11) = Buffer(11)
            numbuf(12) = Buffer(12)
            numbuf(13) = Buffer(13)
            numbuf(14) = Buffer(14)
            numbuf(15) = Buffer(15)
            numbuf(16) = Buffer(16)
            numbuf(17) = Buffer(17)
            numbuf(18) = Buffer(18)
            Text1(0) = numbuf(0)
            Text1(1) = numbuf(1)
            Text1(2) = numbuf(2)
            Text1(3) = numbuf(3)
            Text1(4) = numbuf(4)
            Text1(5) = numbuf(5)
            Text1(6) = numbuf(6)
            Text1(7) = numbuf(7)
            Text1(8) = numbuf(8)
            Text1(9) = numbuf(9)
            Text1(10) = numbuf(10)
            Text1(11) = numbuf(11)
            Text1(12) = numbuf(12)
            Text1(13) = numbuf(13)
            Text1(14) = numbuf(14)
            Text1(15) = numbuf(15)
            Text1(16) = numbuf(16)
            Text1(17) = numbuf(17)
            Text1(18) = numbuf(18)
        End Select
    End Sub