首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB MSComm的奇怪有关问题

2012-01-10 
VB MSComm的奇怪问题我用VB做了串口通信程序,接收的数据如果长为一则是握手信号或结束信号,长为21为数据信

VB MSComm的奇怪问题
我用VB做了串口通信程序,接收的数据如果长为一则是握手信号或结束信号,长为21为数据信号,程序运行正常后,把里面的Msgbox语句删除,数据长度的检测就出错了,不知道为什么?代码如下:
Private Sub MSComm1_OnComm()
Dim Arr() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
bufcount = MSComm1.InBufferCount 
MsgBox (bufcount) '此句拿掉后则后面的Ubound(Arr)值不正确
Arr = MSComm1.Input
If ((UBound(Arr) <> 0) And (UBound(Arr) <> 21)) Then
MsgBox ("wrong...")
Exit Sub

程序运行时,如果发送的是握手或结束信号,则bufcount的值为,Ubound(arr)的值为0,如果数据信号,则Bufcount的值为8,Ubound(arr)的值为21,但如果将Msgbox去掉,则Ubound(arr)的值为7,不知道为什么?请高人指点!

[解决办法]

探讨
谢谢楼上,但是目前我的程序不想再做大的修改,只是想把MsbBox去掉,或者找一个替代的语句.

[解决办法]
用Sleep代替试试,应该说MSGbox只是起了一个延时作用吧.延时后数据就全部读入了.

热点排行