编程论坛
注册
登录
编程论坛
→
VB6论坛
串口发送十六进制数问题
林中小虫
发布于 2017-02-11 22:05, 1812 次点击
通过串口控件送十六进制数,打算发送 FF 01 ,通过串口监控软件查看发现送出去的数据是46 46 30 31 ,如何编写发送部分程序才能让发送出去的数据在串口监控软件里看到的也是 FF 01 。
4 回复
#2
风吹过b
2017-02-11 23:06
字符串与字节流搞错了。
如果你要把 FF 01 发出去,必须先定义一个字节数组,然后发这个字节数组出去。
当然你直接发也行
dim a(1) as byte
a(0)=&HFF
a(1)=&H01
然后再把 a 这个数组发出去。
#3
ZHRXJR
2017-02-12 02:43
先看看 46 46 30 31 这几个十六进制数的十进制数:
46(16) = (4 * 16 + 6 ) = 70(10) 就是字符“F”的ANSI码
46(16) = (4 * 16 + 6 ) = 70(10) 就是字符“F”的ANSI码
30(16) = (3 * 16 + 0 ) = 48(10) 就是字符“0”的ANSI码
31(16) = (3 * 16 + 1 ) = 49(10) 就是字符“1”的ANSI码
因此可以说你是按字符传送数据的,不是按十六进制数传送数据,你在传送时按十六进制数传送就可以了,必须按十六进制数传送数据。
#4
林中小虫
2017-02-12 14:13
回复 2楼 风吹过b
你好!
按你说的方法做,结果是发送a(0)=&HFF 或 a(1)="&H46"可以,显示是 FF 。
事先定义的数组是bytTeceive(5)
Private Sub CmdSend_Click() '发送数据按钮
bytTeceive(0) = "&HFF"
bytTeceive(1) = "&H46"
bytTeceive(2) = "&H01"
MSComm1.Output = bytTeceive '将发送框中的数据送入输出缓冲
显示的结果是 FF 46 01 00 00 00
谢谢!帮我解决了问题。
[此贴子已经被作者于2017-2-12 19:46编辑过]
#5
林中小虫
2017-02-13 18:27
回复 3楼 ZHRXJR
谢谢您的提示,问题的解决离不开像您这样的高手指导。
1