1,453
社区成员
发帖
与我相关
我的任务
分享
Private Sub Timer4_Timer()
Static Temp As Integer
Timer4.Enabled = False
Select Case Temp
Case 0
t2.Text = ""
Call hexSend1
Case 1
t4.Text = ""
Call hexSend2
Case Else
'.....
End Select
Temp=(Temp+1) Mod 2
Timer4.Enabled = True
End Sub
1.Timer4_Timer事件函数的执行时间可能超过Timer4.Interval的间隔时间,所以起始用Enabled中断一下,这样时间分隔更均匀一些
2.数据回读你是在OnComm事件中的,还是在HexSend函数里做的,OnComm事件中做的话,可能有触发条件设置的问题,比如MSComm控件RThreshold值的取值设置问题,另外还有数据粘包的情况,比如两次send但是数据是一次性读到了两个数据包,结果只解析了一个数据,产生丢失。
3.读和显示尽量分离,读的程序只管读,显示的程序只管显示,很多时候数据采集的要求是越快越好,而不是时间上的等间隔。显示处理什么的包含在同一代码中,会使代码显得杂乱和调试困难,尽量分离。