vb 中怎样发送十六进制数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 中怎样发送十六进制数据相关的知识,希望对你有一定的参考价值。
例如,我要发送"25 00 00 00 FF 0E 9A"给单片机,然后单片机接受的数据也是类似这样有极为的数,应该怎么写代码啊?
我还是不太明白!具体应该怎么写啊?
Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1" '设置通信口参数
MSComm1.InBufferSize = 40 '设置MSComm1接收缓冲区为40字节
MSComm1.OutBufferSize = 2 '设置MSComm1发送缓冲区为2字节
MSComm1.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
MSComm1.InBufferCount = 0 '清除接收缓冲区
MSComm1.OutBufferCount = 0 '清除发送缓冲区
'MSComm1.RThreshold = 1 '设置接收一个字节产生OnComm事件
MSComm1.CommPort = 5
MSComm1.PortOpen = True '打开通信口
End Sub
Private Sub Command2_Click()
Dim data() As Byte '串口发送字节
ReDim data(7)
data(0) = &H81
data(1) = &H81
data(2) = &H52
data(3) = &H00
data(4) = &H00
data(5) = &H00
data(6) = &H53
data(7) = &H00
MSComm1.Output = data
接收有几种办法:1.延时接收
Timer1.Enabled = True
t1_c0:
If t1_flag0 = True Then GoTo t1_c1
DoEvents
GoTo t1_c0
t1_c1:
t1_flag0 = False
Dim Bintput() As Byte
Dim Binputa As Variant
Binputa = MSComm1.Input ' 从接收队列中读入字符串
Bintput() = Binputa
Dim i As Integer
For i = 0 To UBound(Bintput)
If Len(Hex(Bintput(i))) = 1 Then
strData = strData & "0" & Hex(Bintput(i))
Else
strData = strData & Hex(Bintput(i))
End If
Next
Text3.Text = strData 参考技术A 可以参考以下贴:
http://zhidao.baidu.com/question/91263821.html
详细的说吧,用MSComm发送数据有两种方式,
一种是文本模式发送,这时要写:
MSComm1.InputMode=comInputModeText
Dim sText="ABC"
MSComm1.OutPut=sText
'把"ABC"用文本方式发送出去.
第二种是二进制模式发送,这时必须要用一个字节数组才能发送,即使是一个字节也要用数组:
MSComm1.InputMode=comInputModeBinary
Dim Buffer as Variant
Dim Bytes(0 To 6) as Byte
Bytes(0)= &H25
Bytes(1)= &H25
Bytes(2)= &H00
Bytes(3)= &H00
Bytes(4)= &HFF
Bytes(5)= &H0E
Bytes(6)= &H9A
Buffer=Bytes()
MSComm1.Output=Buffer本回答被提问者和网友采纳 参考技术B 参阅:http://www.vbgood.com/viewthread.php?tid=83700&highlight=
补充:
Dim bytSend(6) As Byte
bytSend(0) = &H25
bytSend(1) = &H0
bytSend(2) = &H0
bytSend(3) = &H0
bytSend(4) = &HFF
bytSend(5) = &HE
bytSend(6) = &H9A
MsComm1.Output = bytSend
如何在linux下调试串口,发送十六进制数据
串口发送的数据是8位的,最大为255,就是FF,如果要发送大于255的数,必须变成几个字节发送,例如要发送十进制2315,就要将数据拆分 data(0)=2315/256; data(1)=2315%256; 这样就拆分开数据,再将数据发送出去。 参考技术A 使用gtkterm,这个可以传输以上是关于vb 中怎样发送十六进制数据的主要内容,如果未能解决你的问题,请参考以下文章