读书人

VB串行口传输16进制的数如何正常接受

发布时间: 2012-03-17 19:06:28 作者: rapoo

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

[解决办法]

VB code
Dim rece As Bytereceive = MSComm1.Inputmsgbox hex(receive)'16进制转换函数hex
[解决办法]
VB code
Dim receive As Varintdim intP as integer dim bytR(0 to 100) as byteMSCOMM1.inputLenreceive = MSComm1.InputbytR(intP)=receive(0)
[解决办法]
探讨
主要是A-F这几个字母不被Byte类型识别,一直显示类型不匹配。

[解决办法]
VB code
Dim rece() As ByteDim tmp As Varianttmp = MSComm1.Inputrece = tmp
[解决办法]
探讨
个人有个想法觉得是arm板传输的数据是8位的(西文),但是新的数据接收方式都是16位(全部),所以十六位数据传输时,最后变成了中文乱码。
在找各种语句,函数可以进行转换。比如说限制读取位数。虽然有转换的函数StrConv,但那个太慢了,而且影响数据传输的流畅性。以上为个人观点,但是还在摸索没有结论。VB里,没找到现成的十六进制完美转换十进制的方式。

[解决办法]

[解决办法]
探讨
恩,大家来讨论的说。其实当初学VB的时候就很奇怪,有十进制转换十六的例子,却没有看到过十六转十进制的例子。
不过确实存在各种各样的方法,只是其中简洁的很难得

[解决办法]
探讨
求教一下,VB的串行口控件的可以修改的最大波特率是多少?可不可以达到921600?

读书人网 >VB

热点推荐