作者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)