Vb.net向串口发送十六进制数据

时间:2022-09-21 13:59:55
大家好,我有一个问题咨询。
我用网上下载的串口调试软件,十六进制发送“CD 18 86 132”,可以启动设备。

但是我用代码
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim str As String = "CD 18 86 132"
        Dim aByte() As Byte
        Dim i As Integer
        Try
            i = str.Length / 2 - 1
            ReDim aByte(i)
            For i = 0 To i
                aByte(i) = "&H" & Mid(str, i * 2 + 1, 2)
            Next
            Me.SerialPort1.Write(aByte, 0, aByte.Length)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

上面会报错,提示“从字符串&H 0到类型Byte的转化无效”

如果我把空格去掉, 设备没有任何反应,也不报错。



请问如何处理,谢谢。

7 个解决方案

#1


abyte(0)=&HCD和abyte(0)=205有什么区别

#2


用val函数将字符串转换成数字

#3


感谢flfq

请问具体怎么修改我的代码,谢谢。

#4


用split将要发送的字符串的各个字节提取出来,再用val将其转成数字。具体用法请参考MSDN。

#5


flfq,麻烦帮帮忙。
搞了几天了,没有成功。

能改一下我的代码吗?
谢谢。

#6


“CD 18 86 132”这是你要发送的数据,一个字节最大是ff,比132要小。你先看看指令有问题没有。

#7


感谢神人 flfq

#1


abyte(0)=&HCD和abyte(0)=205有什么区别

#2


用val函数将字符串转换成数字

#3


感谢flfq

请问具体怎么修改我的代码,谢谢。

#4


用split将要发送的字符串的各个字节提取出来,再用val将其转成数字。具体用法请参考MSDN。

#5


flfq,麻烦帮帮忙。
搞了几天了,没有成功。

能改一下我的代码吗?
谢谢。

#6


“CD 18 86 132”这是你要发送的数据,一个字节最大是ff,比132要小。你先看看指令有问题没有。

#7


感谢神人 flfq