vb中怎么保证曲线每秒更新 给讲一下每条语句 在线等

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:55:28
我这有一个VB程序,为什么曲线不是每秒更新 而是等一会才自动更新呢 求高手给我讲一下
Public i As Integer
Private pdate(50) As Variant

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 4 'COM4
MSComm1.Settings = "1200,n,8,1" '1200BSP,无校验位,8个数据位,1个停止位
MSComm1.PortOpen = True '打开串口
MSComm1.InputMode = comInputModeBinary '以2进制形式接收数据
MSComm1.RThreshold = 1 '1个字符引发事件
i = 0
Picture1.Scale (0, 100)-(10, 0)
End Sub

Private Sub MSComm1_OnComm()
Dim indata As Variant
Dim bte(0) As Byte

Select Case MSComm1.CommEvent '通讯事件发生
Case comEvReceive
indata = MSComm1.Input
bte(0) = AscB(indata) '读入数据
test = bte(0) * 80 / 255 * 5 '测量值/255*实际量程
ptest = Round(test, 3) '小数点后3位四舍五入
Text2.Text = ptest
pdate(i) = ptest
MSComm1.InBufferCount = 0 '接收缓冲区清空

If i < 50 Then
i = i + 1
Exit S

曲线更新在OnComm中处理,接受到50个数据才更新,如果新数据没有50,就退出了,如果新的数据够50个就更新曲线,并把新数据数量(I)置为0

由上面程序可以看出,画线是通过Picture控件来完成,是在MSComm1_OnComm()中执行,也就是说当串口接收到数据时才会画线,而且画线还有条件I的值必需大于50才会画线。