即COM1口发送数据由COM2口接受,使用两个MSCOMM控件!
下面是我写的一小段程序,总是不能达到目的,请高手指点一下,有分!
请问问题出在哪里,发送4个数字!
谢谢
Private Sub start_Click()
MSComm1.CommPort = 1                    '设定Com1
If MSComm1.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
MSComm1.PortOpen = True                 '打开串口
End If
MSComm1.OutBufferCount = 0              '清空发送缓冲区
MSComm1.InBufferCount = 0          '清空接收缓冲区
buffer = Text1.Text
MSComm1.Output = buffer
MSComm2.CommPort = 2                   '设定Com2
If MSComm2.PortOpen = False Then
MSComm2.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
MSComm2.PortOpen = True                 '打开串口
End If
MSComm2.OutBufferCount = 0              '清空发送缓冲区
MSComm2.InBufferCount = 0               '清空接收缓冲区
MSComm2.InputMode = comInputModeText
MSComm2.RThreshold = 4
MSComm2.InputLen = 0
If MSComm1.CommEvent = comEvReceive Then
End If
buffer = MSComm2.Input
Text2.Text = buffer
End Sub

解决方案 »

  1.   

    先保证硬件的线连接上,
    Private Sub Form_Load()
    MSComm2.CommPort = 2                   '设定Com2
    MSComm2.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
    MSComm2.PortOpen = True                 '打开串口
    MSComm2.OutBufferCount = 0              '清空发送缓冲区
    MSComm2.InBufferCount = 0               '清空接收缓冲区
    MSComm2.InputMode = comInputModeText
    MSComm2.RThreshold = 4
    MSComm2.InputLen = 0
    End SubPrivate Sub MSComm2_OnComm()
    If MSComm2.CommEvent = comEvReceive Then Text2.Text = MSComm2.Input
    End SubPrivate Sub start_Click()
    If MSComm1.PortOpen = False Then
    MSComm1.CommPort = 1                 '设定Com1
    MSComm1.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
    MSComm1.PortOpen = True                 '打开串口
    End If
    MSComm1.OutBufferCount = 0              '清空发送缓冲区
    MSComm1.InBufferCount = 0          '清空接收缓冲区
    MSComm1.Output = Text1.Text
    End Sub
      

  2.   

    ????????????????怎么又有一贴?????不是在
    http://community.csdn.net/Expert/topic/3924/3924848.xml?temp=.409878
    已经解决了吗????
      

  3.   

    cuilonggang(白金)说得很对,哪能把两个MsComm放到一起呢?用首先将两个MsComm全部初始化并打开后,再使用其中一个来发送数据,另一个来接受,分开写道不同的过程里
      

  4.   

    顺序不对,MSComm2 还没有设置,MSComm1就发送,哪里收得到。其次,在MSComm2已经建立的情况下MSComm1发送后,先
    MSComm2.InBufferCount = 0               '清空接收缓冲区

    buffer = MSComm2.Input
    自然是空空如野了。Private Sub start_Click()
    MSComm1.CommPort = 1                    '设定Com1
    If MSComm1.PortOpen = False Then
    MSComm1.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
    MSComm1.PortOpen = True                 '打开串口
    End If
    MSComm1.OutBufferCount = 0              '清空发送缓冲区
    MSComm1.InBufferCount = 0          '清空接收缓冲区MSComm2.CommPort = 2                   '设定Com2
    If MSComm2.PortOpen = False Then
    MSComm2.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
    MSComm2.PortOpen = True                 '打开串口
    End If
    MSComm2.OutBufferCount = 0              '清空发送缓冲区
    MSComm2.InBufferCount = 0               '清空接收缓冲区
    MSComm2.InputMode = comInputModeText
    MSComm2.RThreshold = 4
    MSComm2.InputLen = 0buffer = Text1.Text
    MSComm1.Output = bufferdim tt = timer + 0.5
    text2=""do
      if MSComm2.InBufferCountbuffer then 
        buffer = MSComm2.Input
        Text2.Text = buffer
      end if
      if timer>t then exit do
    loop
    End Sub
      

  5.   

    笔误,更正:
    do
      if MSComm2.InBufferCount then 
        buffer = MSComm2.Input
        Text2.Text = buffer
      end if
      if timer>t then exit do
    loop