我正在 VB.NET 中创建一个超级终端类型的应用程序,但串行连接有问题。当我向设备发送数据时,我得到了我期望的响应,但响应中有一个额外的 CR。即,如果我在超级终端中发送命令,我会得到响应,例如;
response one
response two
但在我的应用程序中它会返回;
response one
response two
代码如下;
Private Sub textSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textSend.KeyPress
        If e.KeyChar = Convert.ToChar(Keys.Enter) Then 
            connSerial.Write(textSend.Text & vbCr)
            textSend.Text = ""
            e.Handled = True 
        End If
    End Sub
和
Private Sub connSerial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles connSerial.DataReceived
        ReceivedText(connSerial.ReadExisting()) 
    End Sub
    Private Sub ReceivedText(ByVal [text] As String)
        If Me.textReply.InvokeRequired Then
            Dim x As New SetTextCallback(AddressOf ReceivedText)
            Me.Invoke(x, New Object() {(text)})
        Else
            textReply.AppendText([text])
        End If
    End Sub
我使用的是 1200 波特率,实际上每一行都被另一行分隔,但是如果我将波特率提高到 57600,它只会偶尔发生。IE;
response 1
response 2
response 3
response 4
response 5