| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2142 人关注过本帖
标题:VB上位机传送两个十六进制数
只看楼主 加入收藏
aiwoleilei
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-6-22
结帖率:60%
收藏
 问题点数:0 回复次数:2 
VB上位机传送两个十六进制数
现在我想编一个VB上位机程序,通过串口向单片机传送两个十六进制数,但第一个固定为01,第二个随输入而改变,比如输入014F等等,我这里有传送一个十六进制数的程序:
Private Sub Cmdsend_Click()
c = numText.Text
If (c = "FF") Then
data1 = "&H" & c
data = Chr(data1)
Else
a = Left(c, 1)
b = Right(c, 1)
data1 = "&H" & numText.Text
data = Chr("&H" & a) & Chr("&H" & b)
End If
MSComm1.Output = data
Cmdsend.Enabled = False
End Sub
请问怎么传送两个十六进制数?
我现在有两种想法,
第一:就是直接输入两个十六进制数,01XX,然后通过串口传送
第二:直接输入一个十六进制数XX,第一个十六进制数01固定在程序中,就是无论发什么数,都是和XX一块发送的
VB程序怎么编,在线等,跪求,急用!!!
搜索更多相关主题的帖子: 十六进制 单片机 
2012-05-01 15:28
smithlzh
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-12
收藏
得分:0 
联系我QQ:274672776
2012-06-13 11:24
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
最近看到几个这种的问题,发现都进了一个误区,以为以字符串形式发送 &HXX 就是发送一个 十六进制数。
其实,十六进制 与十进制数,对于编程人员来说,实际上是一回事。只是计算机不直接认识十进制数,
当我们输入十进制数时,计算机会自动转化为十六进制数保存起来。
当我们要输入一个数据时,计算机会把保存的十六进制数,转化为十进制形式的数据显示出来。
这中间的过程是透明的,一般情况下可以当作不存在的。

&H0A 和 10 就是完全一样的数值,赋值给一个 byte 数据时,结果是一样的。

发送十六进制数,要么使用 byte 数据或数组发送,要么就使用 ASCII 字符串发送。

如果是发送二个数
那么定义

data1(0 to 1) as byte
data1(0)=&H01                '注意,没双引号,或者直接用 十进制  1 也行。
data1(1)=val(numText.Text)    '当 numtext.text 值的范围不在 0-255之间,这行报错。

然后发送 data1 这个 byte 数组就行了。

授人于鱼,不如授人于渔
早已停用QQ了
2012-06-14 08:54
快速回复:VB上位机传送两个十六进制数
数据加载中...
 
   



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

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