我在 vb.net 中创建了一个应用程序,它通过串行端口连续发送和接收数据。我用一些所需的自定义参数形成一个框架,例如帧号、帧长度、实际字符串。它们由特殊字符分隔,如'@'、'#'、'$' 等。例如@#3$21%Hello.There!!&
我必须在两个连续帧之间至少有 1 毫秒的间隔来测试它。我面临的问题是,当我在环回测试中接收数据时,通常会丢失一些字符。它被算作一个损坏的框架,但我无法理解为什么它会出现在 Windows 的环回测试中。这个框架看起来像,@#3$21Hello.The!!&。接收函数是这样的。
Private Sub DataReceivedHandler(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles RXCOMPort.DataReceived
If e.EventType = SerialData.Chars Then
If checkFlag = False Then
'---receive data
str &= RXCOMPort.ReadExisting()
checkFlag = True ' for the thread of processing received data
End If
End If
End Sub
稍后将有一些基于微控制器的硬件,它们将从 UART 接收和发送数据到 UART。