+ -
当前位置:首页 → 问答吧 → VB串行口传输16进制的数,怎么正常接受并显示啊?

VB串行口传输16进制的数,怎么正常接受并显示啊?

时间:2011-11-02

来源:互联网

Dim rece As Byte
receive = MSComm1.Input
结果是类型不匹配。
有些列子(虽然不知道能不能用),写了很多。连BulidCommDCB都出来了。不知道是不是要这么写。
frmMain.ctrMSComm.InputMode = comInputModeBinary
其他单片机的程序写的很简单的样子。这个数据是一个字节,十六位的。数据是“CC ”变成了“烫”
其他现成的程序用Hex可以正常显示。

作者: sk670915   发布时间: 2011-11-02

Dim rece As Byte
receive = MSComm1.Input

msgbox hex(receive)



'16进制转换函数hex

作者: chinaboyzyq   发布时间: 2011-11-03

VB code

Dim receive As Varint
dim intP as integer 
dim bytR(0 to 100) as byte
MSCOMM1.inputLen
receive = MSComm1.Input
bytR(intP)=receive(0)



参阅这个

作者: Veron_04   发布时间: 2011-11-03

主要是A-F这几个字母不被Byte类型识别,一直显示类型不匹配。

作者: sk670915   发布时间: 2011-11-03

引用 3 楼 sk670915 的回复:
主要是A-F这几个字母不被Byte类型识别,一直显示类型不匹配。

那是你的InputMode的问题
参阅一下我给你的那个例子。

作者: Veron_04   发布时间: 2011-11-03

不只是inputmode问题,只改inputmode没有用的,稍稍看了下程序,觉得以下程序的可能性更高
outbte(q) = Val("&h" + Hex(Asc(vChar(q))))
Text4.Text = Text4.Text & Hex(Asc(Mid(out, q + 1, 1)))
 Text4.Text = Text4.Text & Hex(CRC(1)) & Hex(CRC(0))

作者: sk670915   发布时间: 2011-11-03