这个程序运行后很奇怪?
小妹刚刚接触VB,现在用它编一个上位机监视软件,不过在接收显示数据时(大于八个字节)出现了问题,
Dim s() As Byte
Dim SS(1024) As Byte
Dim W As Integer
Dim Unicode, Hanzi, tan(10000) As String
If (MSC1.CommEvent = comEvReceive) Then
s = MSC1.Input '只要有数据就收进来,哪怕只是一个
ConnectNormal = True '连接正常
If frameend = True Then '间隔20MS以上就认为是一个新的包
frameend = False
Text1 = "" '显示故障信息
End If
W = UBound(s)
For i = 0 To W '将数据组成unicode字符串,一个数据包可能产生若干个oncomm事件
SS(i) = s(i) '接收数据包缓存于SS()
Text2.Text = Text2.Text & Right("0" & LTrim(Hex(SS(i))), 2)
Next i
在这种情况下,Text2.Text 可以显示接收到得全部数据,
Private Sub MSC1_OnComm() '串口接收事件Dim S() As Byte
Dim s() As Byte
Dim SS(1024) As Byte
Dim W As Integer
Dim Unicode, Hanzi As String
If (MSC1.CommEvent = comEvReceive) Then
s = MSC1.Input '只要有数据就收进来,哪怕只是一个
ConnectNormal = True '连接正常
If frameend = True Then '间隔20MS以上就认为是一个新的包
frameend = False
Text1 = "" '显示故障信息
End If
W = UBound(s)
For i = 0 To W '将数据组成unicode字符串,一个数据包可能产生若干个oncomm事件
SS(i) = s(i) '接收数据包缓存于SS()
Unicode = Unicode & Right("0" & LTrim(Hex(SS(i))), 2)
Next i
Text2.Text = Unicode
而这种情况下,就不行啦!!!!!第一次接收数据text2只能显示前八个字节,而以后就可以全部显示,郁闷啊
就那么一点不同,怎么会呢???????
[解决办法]
看你得程序看的累,给你一个串口调试器的代码,你可以参考它来写,很规范的代码。
http://download.csdn.net/source/1262066