| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1588 人关注过本帖
标题:串口发送十六进制数问题
只看楼主 加入收藏
林中小虫
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-12-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
串口发送十六进制数问题
通过串口控件送十六进制数,打算发送 FF 01  ,通过串口监控软件查看发现送出去的数据是46 46 30 31 ,如何编写发送部分程序才能让发送出去的数据在串口监控软件里看到的也是 FF 01  
搜索更多相关主题的帖子: 十六进制 监控软件 如何 
2017-02-11 22:05
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
字符串与字节流搞错了。
如果你要把 FF 01 发出去,必须先定义一个字节数组,然后发这个字节数组出去。
当然你直接发也行

dim a(1)  as  byte
a(0)=&HFF
a(1)=&H01
然后再把 a 这个数组发出去。

授人于鱼,不如授人于渔
早已停用QQ了
2017-02-11 23:06
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:5 
先看看 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码
因此可以说你是按字符传送数据的,不是按十六进制数传送数据,你在传送时按十六进制数传送就可以了,必须按十六进制数传送数据。

请不要选我!!!
2017-02-12 02:43
林中小虫
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-12-22
收藏
得分:0 
回复 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编辑过]

2017-02-12 14:13
林中小虫
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-12-22
收藏
得分:0 
回复 3楼 ZHRXJR
谢谢您的提示,问题的解决离不开像您这样的高手指导。
2017-02-13 18:27
快速回复:串口发送十六进制数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024979 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved