作者terence362 (准时下班才苏胡)
看板Visual_Basic
标题Re: [.NET] 读取RS232後是乱码
时间Sun Oct 11 23:50:51 2009
※ 引述《Laplace929 (大熊)》之铭言:
: 小弟 用VB2005 写读取陀螺仪的程式
: 当我输入 "0E" 时 会回传 16进位的 ASC(2) 码
: 我用 AccessPort 测得 OE FA 85 02 0E CE DF 05 E5 D1 65
: 但我用自己写的 VB程式 却给我回传 OE#$@%$#$@!#@
: 小弟我的关键程式码是 :
: If e.EventType <> SerialData.Chars Then Exit Sub
: Dim indata As String = Me.SerialPort1.ReadExisting
这个部分用 .ReadExisting 所读出来的资料
会 as string
而你看起来想要的是 Hex-String
所以或许要用
.ReadByte 会比较好
但是使用这个而且没有设定timeout的话
AP会卡住,一直在那边读资料
所以可能就要设定 Timeout值 还有
最好是用 回圈的方式,如 While ...
满足结束位元 (65) 的条件时要离开回圈
另外最近又找了另一个方式
就是一样用 .ReadExisting
然後读出来之後先转换成 AscW()
然後再把 Byte convert to HexString
这样就可以呈现你想要的 0E FA 85 02 0E CE DF 05 E5 D1 65
以上
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.70.204.61