最近做一个串口调试软件,要求用16进制发送和接收。但现在数据可以正确发送,也可以将返回数据读入到缓冲区,但是当要送出显示的时候却一直没办法接收,其中一段源程序如下,我是定义成数组形式来接收数据,接收的数据为11个字节 Select Case frmComm.MSComm1.CommEvent
Case comEvReceive
bytData = frmComm.MSComm1.Input '从缓冲区接收反馈数据
For n = 0 To 11 '写入到数组arrReceive中
arrReceive(n) = bytData(n)
Next n
End Select
Case comEvReceive
bytData = frmComm.MSComm1.Input '从缓冲区接收反馈数据
For n = 0 To 11 '写入到数组arrReceive中
arrReceive(n) = bytData(n)
Next n
End Select
Case comEvReceive
bytData = frmComm.MSComm1.Input '从缓冲区接收反馈数据
For n = 0 To 11 '写入到数组arrReceive中
arrReceive(n) = bytData(n)
Next n
End Select
“ NAME=arrReceive(2)”
bytData = frmComm.MSComm1.Input
For n = 0 To 11
aa=mid(bytData,n+1,1)
arrReceive(n)=Hex(Asc(aa))
Next n
NAME=arrReceive(2)
不知道bytData 是如何定义的,
如果楼主把bytData定义为一个字符串,那是不能使用bytData()访问字符串中单个字符的,
如果bytData是一个字符串数组的话,则也是不能使用bytData = frmComm.MSComm1.Input这样的语句的。
一般来说通常的做法都是使用一个字符串变量,先将COM中的输入缓冲区的内容都读出来,然后再对字符串进行操作处理。