VB.NET中如何处理串口通信接收的数据?
现在上位机的接受段代码如下,并且测试可以正确取得信息:PrivateSubcomm_DataReceived(ByValsenderAsObject,ByValeAsSe...
现在上位机的接受段代码如下,并且测试可以正确取得信息:
Private Sub comm_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim n As Integer = comm.BytesToRead
Dim buf(n) As Byte
comm.Read(buf, 0, n)
builder.Length = 0
Invoke(Sub()
If checkBoxHexView.Checked Then
For Each b As Byte In buf
builder.Append(b.ToString("X2") & " ")
Next
Else
builder.Append(Encoding.ASCII.GetString(buf))
End If
txGet.AppendText(builder.ToString)
End Sub)
End Sub
下位机传输的数据大体是:
100
101
102
103
104
接收的全是三位数的数字,但是直接想在上位机中转换为数值就出现了问题。
比如我重新做一个textbox, textbox2.text=builder.tostring 显示的值就是单字节数值比如是“01”,“3”这样子,怎样读出下位机输出的一行,并且转换为数值型?
example,textbox中直接显示101这样。
PS:下位机可做改动,可以增加识别字符。
小的再此感谢各位大神! 展开
Private Sub comm_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim n As Integer = comm.BytesToRead
Dim buf(n) As Byte
comm.Read(buf, 0, n)
builder.Length = 0
Invoke(Sub()
If checkBoxHexView.Checked Then
For Each b As Byte In buf
builder.Append(b.ToString("X2") & " ")
Next
Else
builder.Append(Encoding.ASCII.GetString(buf))
End If
txGet.AppendText(builder.ToString)
End Sub)
End Sub
下位机传输的数据大体是:
100
101
102
103
104
接收的全是三位数的数字,但是直接想在上位机中转换为数值就出现了问题。
比如我重新做一个textbox, textbox2.text=builder.tostring 显示的值就是单字节数值比如是“01”,“3”这样子,怎样读出下位机输出的一行,并且转换为数值型?
example,textbox中直接显示101这样。
PS:下位机可做改动,可以增加识别字符。
小的再此感谢各位大神! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询