【问题标题】:Serial Communication in VB6VB6 中的串行通信
【发布时间】:2015-03-25 17:17:57
【问题描述】:

我是vb6和通信应用程序的新手,我尝试运行一个在两个串口之间传输和接收数据的示例(我通过com0com软安装了两个串口)。

在此示例中,我希望用户在 textbox1 中键入字符,然后单击命令按钮,并且 textbox1 中的字符显示在 textbox2 中。

Private Sub Command1_Click()
com1.Output = Text1.Text
End Sub

Private Sub Form_Load()
com1.CommPort = 1
com1.Settings = "9600,n,8,1"
com1.PortOpen = True
com2.CommPort = 2
com2.Settings = "9600,n,8,1"
com2.PortOpen = True

Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub com2_OnComm()
If com2.CommEvent = comEvReceive Then
    Text2.Text = Text2.Text + com2.Input

End If
End Sub

我在示例中筛选了form 并在com0com 端口中设置,我没有足够的声誉来发布图像,所以我将它上传到flickr。

http://farm8.staticflickr.com/7627/16740707238_6b1d9ec3ab_b.jpg

但是当我尝试通过在 textbox1 中键入字符并单击按钮来运行此示例时,没有任何反应。

那么我做错了什么?如果是这样,我该如何从 com1 端口获取数据到 com2port?或任何建议!

感谢阅读!

【问题讨论】:

  • 你确定电缆是正确的吗?
  • 有电缆吗?我以为他正在使用一个设备驱动程序,该驱动程序实现了两个背靠背循环的端口。
  • 是的,我是用软件实现两个串口的。

标签: vb6


【解决方案1】:

我认为您需要更加努力地查看文档。

这是一个最小的例子,COM3/COM4 是我机器上的循环端口:

Option Explicit

Private Sub Command1_Click()
    If Len(Text1.Text) > 0 Then
        MSComm1.Output = Text1.Text
        Text1.Text = vbNullString
    End If
    Text1.SetFocus
End Sub

Private Sub Form_Load()
    With MSComm1
        .CommPort = 3
        .Settings = "256000,n,8,1"
        .Handshaking = comNone
        .SThreshold = 0 'No events after send completions.
        .RThreshold = 0 'No events after receive completions.
        .PortOpen = True
    End With
    With MSComm2
        .CommPort = 4
        .Settings = "256000,n,8,1"
        .EOFEnable = False
        .Handshaking = comNone
        .InputMode = comInputModeText
        .RThreshold = 1 'Event for each character received.  Terribly
                        'inefficient but if char-by-char events are
                        'required there isn't much choice.
        .SThreshold = 0 'No events after send completions.
        .PortOpen = True
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    MSComm1.PortOpen = False
    MSComm2.PortOpen = False
End Sub

Private Sub MSComm2_OnComm()
    With MSComm2
        If .CommEvent = comEvReceive Then
            .InputLen = 0
            Text2.SelStart = &H7FFF
            Text2.SelText = .Input
        End If
    End With
End Sub

【讨论】:

  • 谢谢,你的代码帮了我很多,我得到了我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多