[.NET] SerialPort ASCII轉16進制顯示問題
請輸入專案類型(網站專案或者應用程式專案):
VB2010 Express
各位先進好,
小弟想將ASCII的值傳到SerialPort(COM1),
目的在於傳16data到SerialPort,進而控制連接在SerialPort的裝置,
資料總共7個Byte。
而此SerialPort連接的程式可以直接看到ASCII轉16進制的值,
我的寫法如下:
SerialPort1.Close()
SerialPort1.BaudRate = 19200
port = 1
SerialPort1.PortName = "COM" & port
SerialPort1.Open()
SerialPort1.Write(Chr(128))
問題就出在128開始!
在127前,可以很完整的顯示每個ASCII對照的16進制值,
但128開始顯示的16進制值卻開始出現問題(數值不對或顯示00),
造成資料錯誤
網路上找到方式,是將chr內的值以byte方式傳送,於是我寫成:
Dim A As Byte
A = 128
.
.
.
SerialPort1.Write(Chr(A))
依然無法解決
請問這要用什麼方式解決呢?
或者有更好的方式可以傳值給SerialPort嗎?
還請各位先進給予指導,非常感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.170.85
就在剛剛已經解決我的問題
在前面加上一行
SerialPort1.Encoding = System.Text.Encoding.GetEncoding("iso-8859-1")
就可以解決問題^^
推
10/15 22:16, , 1F
10/15 22:16, 1F
→
10/15 22:16, , 2F
10/15 22:16, 2F
推
10/15 22:18, , 3F
10/15 22:18, 3F
你好,因為我是要傳data過去,
雖然我依然無法顯示128以上的字元,但轉換成16進制已經可以正常顯示,
否則傳入系統的值都會是持續的3F(>128的)
謝謝你!
※ 編輯: lsmking7219 來自: 115.43.83.167 (10/16 07:56)