【发布时间】:2018-04-17 15:19:22
【问题描述】:
我创建了这段代码来从串口(com)接收数据
Private port As New SerialPort("COM1", 9600, Parity.None, 8, StopBits.One)
Function ReceiveSerialData() As String
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
port.Open()
port.ReadTimeout = 1000
Dim Incoming As String
Incoming = port.ReadLine()
returnStr = Incoming
Catch erreur As IOException
returnStr = "Check Port"
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If port IsNot Nothing Then port.Close()
End Try
Return returnStr
End Function
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Label2.Content = ReceiveSerialData()
End Sub
我想创建一个事件以在数据实时更改时重新执行此代码。
有什么建议吗?
【问题讨论】:
-
您可以为SerialPort.DataReceived 事件添加处理程序
-
如果你把读取的代码放在一个while循环中,它会按照你的要求做。
-
@Jaxi 我试图放 while 循环,但它不起作用
-
@soohoonigan 如何使用它(谢谢)
-
这取决于您的设备的通信设置方式。如果它不断地发回数据,那么只需向我链接的那个事件添加一个处理程序。如果设备需要在发回数据之前进行查询,则使用计时器并不断向其请求数据
标签: wpf vb.net synchronization real-time