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

这个程序运行后很奇怪?解决方法

2012-01-28 
这个程序运行后很奇怪?小妹刚刚接触VB,现在用它编一个上位机监视软件,不过在接收显示数据时(大于八个字节)

这个程序运行后很奇怪?
小妹刚刚接触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

热点排行