100分请教.用vb后遇到的最匪夷所思的问题,请各位高手帮忙!
这段程序是在MSComm_OnComm事件中校验重串口接收的数据的代码,接到的数据前41位(0——40)为信息,第42位order(41)为校验和,即前41位的加和转换为16进制后取后两位。现在是每次接收到信息,如果在1、2、3行中任意一处设断点的话,程序执行正常。否则的话校验和计算错误。而且接收到的数据相同的情况下,每次得到的结果都不同。
为什么同一段代码,设断点和不设断点得到的结果不同呢?
'检查效验和
1 sum = 0
For I = 0 To (40)
sum = sum + order(I)
Next I
2 I = 0
3 sum = Hex(sum And 255)
If Not Hex(order(41)) = sum Then
MessageBox 0&, "校验和错,退出", "IDMS", &H0&
exit sub
End If
下面是接收到的数据的例子
E7 A0 43 EE AA 11 10 00 20 00 01 00 01 01 12 22 01 12 34 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77