VB.NET 串口异步接收数据示例代码
以下是一个使用 Visual Basic .NET 编写的串口异步接收数据的示例代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SerialPort1.PortName = "COM1" ' 设置串口号
SerialPort1.BaudRate = 9600 ' 设置波特率
SerialPort1.Parity = Parity.None ' 设置校验位
SerialPort1.DataBits = 8 ' 设置数据位
SerialPort1.StopBits = StopBits.One ' 设置停止位
SerialPort1.Handshake = Handshake.None ' 设置握手协议
SerialPort1.Open() ' 打开串口
End Sub
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim bytesToRead As Integer = SerialPort1.BytesToRead ' 获取可用字节数
Dim buffer(bytesToRead - 1) As Byte ' 定义字节数组
SerialPort1.Read(buffer, 0, bytesToRead) ' 读取数据到字节数组
Dim receivedData As String = System.Text.Encoding.ASCII.GetString(buffer) ' 将字节数组转换为字符串
TextBox1.Invoke(Sub() TextBox1.AppendText(receivedData)) ' 将接收到的数据显示在文本框中
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
SerialPort1.Close() ' 关闭串口
End Sub
在这个示例中,我们首先在窗体的 Load 事件中设置了串口的各项属性,并打开了串口。然后在 SerialPort 的 DataReceived 事件中,我们获取可用字节数,定义一个字节数组,从串口读取数据到字节数组中,并将字节数组转换为字符串,最后将接收到的数据显示在文本框中。最后,在窗体的 FormClosing 事件中关闭了串口。注意,我们使用了 Invoke 方法来在主线程中更新 UI 控件,因为 DataReceived 事件并不在主线程中运行。
原文地址: https://www.cveoy.top/t/topic/oSvu 著作权归作者所有。请勿转载和采集!