cf手游怎样练好狙击枪:我想问个vb的mscomm控件的问题。最好有人用过温度采集模块。

来源:百度文库 编辑:高考问答 时间:2024/05/03 05:41:01
我使用研华adam4018和4520组合成一个温度采集系统,使用vb的mscomm控件来做温度显示和存储。

虽然可以使用这个程序
但是这里看不明白

Private Sub Timer1_Timer()
Timer1.Interval = intervaltime
MSComm1.Output = "#01" & Chr(13)

Do
DoEvents
Buffer = Buffer & MSComm1.Input
Loop Until InStr(Buffer, vbCr)

Text1.Text = Format(Mid$(Buffer, 3, 6), "#####.00")
Text3.Text = Format(Mid$(Buffer, 10, 6), "#####.00")

Text4.Text = Format(Mid$(Buffer, 17, 6), "#####.00")
Text5.Text = Format(Mid$(Buffer, 24, 6), "#####.00")
Text6.Text = Format(Mid$(Buffer, 31, 6), "#####.00")
Text7.Text = Format(Mid$(Buffer, 38, 6), "#####.00")
Text8.Text = Format(Mid$(Buffer, 45, 6), "#####.00")
Text9.Text = Format(Mid$(Buffer, 52, 6), "#####.00")
End Sub

现在是可以显示温度值了,但是不明白为什么有个Buffer变量?
Buffer = Buffer & MSComm1.Input
的意思是把Com1串口的数据采集回来,然后和buffer一起辅值给新的buffer?对吗?

但是,Mid$(Buffer, ?, 6)的意思是什么?6代表精度,中间那里我用?代替的值是以7的等差数列,我这样编程后就可以用了,但是不知道那里代表什么意思。mid$又是什么意思??

mid$和mid是一样的函数,功能如下:
mid(buffer,a,b)是指取buffer的字符,是从第a个字符开始,长度为b。
例如buffer=“abcdefghi”,a=2,b=3;那么:
mid(buffer,2,3)=“bcd”