因为条件有限,需要在一台PC机上做串口通信的测试,就是说一个读一个发(COM1发数据,COM2读数据),数据为16进制的。请问怎么实现?谢谢!

解决方案 »

  1.   

    没有什么特殊的啊,加入两个MSComm控件啊。
      

  2.   

    我用串口精灵做实验,可以发送和接收。可是用我的写的程序就不行,请大虾们指点!
    程序如下:
    Private Sub Command1_Click()
    Dim i As Integer
    Dim data_out() As Byte
    Dim OutData As Variant
    'On Error GoTo ExitError
    '    If Trim(Text2.Text) = "" Then
    '        List1.AddItem "发送缓冲区无数据"
    '        Exit Sub
    '    End If
    ReDim data_out(6)
    data_out(0) = &H68
    data_out(1) = &H3
    data_out(2) = &H60
    data_out(3) = &H1
    data_out(4) = &H1
    data_out(5) = "&H" & Hex(data_out(2) + data_out(3) + data_out(4))
    data_out(6) = &H16MSComm1.Output = data_outDo     DoEvents
    Loop Until MSComm1.OutBufferCount = 0Exit Sub'ExitError:
    '    MsgBox "发送出错!!!"
    End Sub
    '主要进行串口的初始化
    Private Sub Form_Load()
        '选择com1
        MSComm1.CommPort = 1
        '设置波特率为9.6kpbs,没有奇偶校验,8位数据位,1位结束位
        MSComm1.Settings = "9600,N,8,1"
        '读取全部的输入缓冲区
        MSComm1.InputLen = 1
         '设置接收数据模式为二进制形式
        MSComm1.InputMode = comInputModeBinary
        '端口打开
        MSComm1.PortOpen = True    MSComm1.InBufferCount = 0 '清除发送缓冲区数据    MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
        
        MSComm1.Handshaking = comRTSXOnXOff
        
        MSComm1.RThreshold = 1 '设置接收一个字节产生OnComm事件
        MSComm1.SThreshold = 1 '设置Output 一次从发送缓冲读取字节数为1
    End Sub
    谢谢!·!
      

  3.   

    来信,发个例子给你,
    和两机调试是一样的。加两个comm控件就行。
      

  4.   

    planetike(阿胜) 您能帮我改改程序吗?
    谢谢!