※ 引述《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