以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]串口数据收发的问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65661)

--  作者:54292550
--  发布时间:2015/3/20 9:48:00
--  [求助]串口数据收发的问题。
我想用我有一个单片机发送接收都是十六进制的数据,想用foxtable的串口功能通信,发送数据我可以通过十进制转换为十六进制发送出去,可是接收到的十六进制数据再转换为十进制数据本人还不会,求帮助。

发送数据:
Dim a1 As String
a1 = e.Form.Controls("ComboBox1").Text                 \' 串口端口选择
Ports.Add(a1)
With Ports(a1)
    .Close()
    .Parity = Parity.None
    .Handshake = Handshake.None
    .StopBits = StopBits.One
    .BaudRate = 57600
    .DataBits = 8
    .ReadBufferSize() = 4096
    .WriteBufferSize() = 2048
    .Open
End With
Dim Val() As Byte = New Byte() {85,5,1,163,64}                \'发送十六进制数据:55 05 01 A3 40
Ports(a1).Write(Val, 0, Val.Length)






假如我接收到的还是55 05 01 A3 40






--  作者:有点甜
--  发布时间:2015/3/20 9:52:00
--  

 参考 http://www.foxtable.com/help/topics/1622.htm

 


--  作者:54292550
--  发布时间:2015/3/20 14:11:00
--  
还是没法实现,
报错:
编译错误:类型“String”的值无法转换为Byte 的 1 维数组“。

使用设备监视器DateReceived事件,通过串口调试工具往端口发送十六进制数据,假如我发送十六进制数据55 05 01 A3 40,做一个弹出窗口收到的是" U?@ ",我想转换一下数据格式变成可以识别的,可就是无法转换。求助给个例子吧。
此主题相关图片如下:十六进制数据.png
按此在新窗口浏览图片

--  作者:有点甜
--  发布时间:2015/3/20 14:28:00
--  

 参考

 

http://www.foxtable.com/help/topics/1979.htm

 

 

 比如

 

Dim cnt As Integer = e.Port.BytesToRead
If cnt > 0 Then \'缓冲区是否有数据
    Dim Val(cnt - 1) As Byte
    e.Port.Read(val,0,cnt)
    For Each v As Byte In val
        msgbox(v)
    Next

End If