简单的vbasic控制台串行接收/读取原始二进制数据?

时间:2014-11-29 19:55:08

标签: binary serial-port

我有一个非常简单的VBasic控制台程序,它从串行com端口读取原始二进制输入数据并将其写入控制台窗口。

问题在于它不会读取所有传入的字节,也不会显示所有字节。

代码:

Module Module1

Private WithEvents SerialPort1 As New System.IO.Ports.SerialPort("COM3")

Sub main()

    SerialPort1.BaudRate = 31250
    SerialPort1.DataBits = 8
    SerialPort1.Encoding = System.Text.Encoding.GetEncoding(1252)

    SerialPort1.Open()
    Console.ReadKey()
    SerialPort1.Close()
End Sub



Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    Dim byteReceived As Byte = SerialPort1.ReadByte
    Console.Write(" " & Hex(byteReceived))
End Sub
End Module

因此,例如,如果我将十六进制序列53 aa 55 bb发送到串行端口,控制台将写入53 aa并停止,然后如果我重新发送该消息,则显示55 bb 53,依此类推。因此,好像程序没有完全从串行缓冲区中检索数据。

任何人都知道我错过了什么或错误在哪里?

谢谢!

0 个答案:

没有答案