Dim rece As Byte
receive = MSComm1.Input
结果是类型不匹配。
有些列子(虽然不知道能不能用),写了很多。连BulidCommDCB都出来了。不知道是不是要这么写。
frmMain.ctrMSComm.InputMode = comInputModeBinary
其他单片机的程序写的很简单的样子。这个数据是一个字节,十六位的。数据是“CC ”变成了“烫”
其他现成的程序用Hex可以正常显示。
receive = MSComm1.Input
结果是类型不匹配。
有些列子(虽然不知道能不能用),写了很多。连BulidCommDCB都出来了。不知道是不是要这么写。
frmMain.ctrMSComm.InputMode = comInputModeBinary
其他单片机的程序写的很简单的样子。这个数据是一个字节,十六位的。数据是“CC ”变成了“烫”
其他现成的程序用Hex可以正常显示。
Dim receive As Varint
dim intP as integer
dim bytR(0 to 100) as byte
MSCOMM1.inputLen
receive = MSComm1.Input
bytR(intP)=receive(0)
参阅这个
参阅一下我给你的那个例子。
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))
在找各种语句,函数可以进行转换。比如说限制读取位数。虽然有转换的函数StrConv,但那个太慢了,而且影响数据传输的流畅性。以上为个人观点,但是还在摸索没有结论。VB里,没找到现成的十六进制完美转换十进制的方式。
我认为速度慢是因为,我在编一个串口极限速度,USB转RS232,921600的波特率。
这已经是硬件的极限了,在接受时,没有那么多时间,一边接受一边用strconv转换。
如果是很慢或者只传输几个字符,那解决方法有很多,但是用最大速率时,很多计算必须精简,不然你转换的速率没有接受的快就会出现数据错误。