Я использую следующий код для чтения значений из COM-порта:
Private port As New SerialPort("COM13", 9600, Parity.None, 8, StopBits.One)
Private Sub port_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Debug.Print(port.ReadExisting())
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler port.DataReceived, New SerialDataReceivedEventHandler(AddressOf port_DataReceived)
port.Open()
End Sub
Это работает просто отлично, но время от времени он не получает все данные и в результате возвращает две строки вместо одной.
Например, если COM-порт отправлял слово «HELLO2YOU», это выглядело бы как:
HEL
LO2YOU
или
HELLO2
YOU
Как я могу поместить туда буфер, чтобы убедиться, что все данные прочитаны перед его отображением?
Спасибо!