[.NET] SerialPort ASCII轉16進制顯示問題

看板Visual_Basic作者 (LSM)時間10年前 (2013/10/15 11:03), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): 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
看不到是因為128以上是不顯示字元,其實你不需要顯示出
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)
文章代碼(AID): #1INB237N (Visual_Basic)