通过vb6.0绘制串口过来的数据的实时曲线,下边是一个例子

OptionExplicitDimDataFromComAsInteger'从串口读过来的实时值DimDataFromComLastAsInteger'上次的串口值Dim... Option Explicit

Dim DataFromCom As Integer '从串口读过来的实时值
Dim DataFromComLast As Integer '上次的串口值
Dim TimeCount As Integer

Private Sub Form_Load()
PicScale Pic '调整图像框的坐标系
PicMidleLine Pic '在图像框中画一条中线
End Sub
Private Sub PicScale(picX As PictureBox) '调整图像框的坐标系
picX.Scale (0, picX.ScaleHeight)-(picX.ScaleWidth, -picX.ScaleHeight)
End Sub

Private Sub PicMidleLine(picX As PictureBox) '在图像框中画一条中线
picX.Line (0, 0)-(picX.ScaleWidth, 0), vbGreen '画出中线
End Sub

Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)

If TimeCountX - 1 > 0 Then
picX.Line ((TimeCountX - 1) * 10, DataFromComLastX)-(TimeCountX * 10, DataFromComX), vbWhite
End If

End Sub

Private Sub Timer1_Timer()
DataFromComLast = DataFromCom
Randomize
DataFromCom = 3000 * Rnd
TimeCount = TimeCount + 1
DrawRealLine Pic, TimeCount, DataFromCom, DataFromComLast '画出实时的曲线
End Sub
它是用3000 * Rnd模拟串口过来的数据,不知道怎么令MSComm的数据替换这个3000*Rnd,我把MSComm.Input给一个数组,然后数组再给 DataFromCom也不行。要么不出线,要不就是直线,修改proteus的数据也不行。
希望帮忙解答下,谢谢。
展开
 我来答
chinaboyzyq
2011-04-25 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3154万
展开全部
1)删除定时器事件部分的所有程序。
2)如果使用mscomm一次接收一组数据(即用数组),那么要用循环按数组元素来画线。
3)如果使用mscomm一次接收一个数据,那么每次触发oncomm就调用画线过程来画线。
4)查检你oncomm事件里MSComm.Input返回的数据是否正确,使用二进制接收时,每个数据都是字节数据,因此每个数组元素值不会大于255,利用mscomm发送大于255的数需要组织协议,收到数据后进行数据解析,再用解析的数据画线。
追问
谢谢
那么如何将串口过来的实时数据通过vb6.0存入access呢?希望能够解答
追答
ADODC控件连接并操作ACCESS数据库就可以。

VB6 的ADODC连接并操作ACCESS数据库去网上搜一下有很多,我就不写了;也可以有用ADODB连接并操作ACCESS数据库,新手建议使用ADODC控件。
来自:求助得到的回答
匿名用户
2011-04-24
展开全部
推荐看书

Visual_Basic与_RS-232_串行通信控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e8a369d
2011-04-24 · 超过85用户采纳过TA的回答
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:161万
展开全部
是不是没有数据返回?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式