我做了一个串口的测试程序,一个是写form1,一个是读form2,大家帮我看看,为神马form2先是不出来数据呢〉???
form1:Private Sub Command1_Click()
MSComm1.InputMode = comInputModeBinary
MSComm1.Output = &HFF & vbCr
MSComm1.Output = &H0 & vbCr
MSComm1.Output = &H5A & vbCr
MSComm1.Output = &H3 & vbCr
MSComm1.Output = &H2 & vbCr
MSComm1.Output = "E" & vbCr
MSComm1.Output = "N" & vbCr
MSComm1.Output = "D" & vbCr
End SubPrivate Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End Subform2:Private Sub Form_Load()
MSComm1.CommPort = 2
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End SubPrivate Sub MSComm1_OnComm()
Dim buff As String
MSComm1.InputMode = comInputModeBinary
buff = ""
Select Case MSComm1.CommEvent
  Case comEvReceive
  For i = 1 To 8
  buff = buff + MSComm1.Input
  Next i
  Label1.Caption = buff
  Case Else
End Select
End Sub我是新手,刚学串口编程,让大家见笑了

解决方案 »

  1.   

    你用两个串口一个读一个写是不是?我想问问你再Form1发送数据以后能否触发Form2的Oncomm事件?
    你是用一台电脑做这个程序,还是Form1 在一台电脑,Form2 在另一台电脑
      

  2.   

    form1:
    Private Sub Form_Load()
    MSComm1.CommPort = 1
    MSComm1.InBufferSize = 1024
    MSComm1.Settings =  "9600,N,8,1"
    MSComm1.InputLen = 0
    MSComm1.InputMode = comInputModeText
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    MSComm1.PortOpen = True
    End Subform2:
    Private Sub Form_Load()
    MSComm1.CommPort = 2
    MSComm1.InBufferSize = 1024
    MSComm1.Settings =  "9600,N,8,1"
    MSComm1.InputLen = 0
    MSComm1.InputMode = comInputModeText
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    MSComm1.PortOpen = True
    End Sub