作者lsmking7219 (LSM)
看板Visual_Basic
標題[.NET] ASCII轉16進制顯示問題
時間Tue Oct 15 11:03:27 2013
請輸入專案類型(網站專案或者應用程式專案):
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")
就可以解決問題^^
1F:推 johnpage:看不到是因為128以上是不顯示字元,其實你不需要顯示出 10/15 22:16
2F:→ johnpage:來。 10/15 22:16
3F:推 johnpage:想ㄧ下程式需求,你會懂的 10/15 22:18
你好,因為我是要傳data過去,
雖然我依然無法顯示128以上的字元,但轉換成16進制已經可以正常顯示,
否則傳入系統的值都會是持續的3F(>128的)
謝謝你!
※ 編輯: lsmking7219 來自: 115.43.83.167 (10/16 07:56)