关于vb串口通信的问题 20

我现在用vb做个数据分析软件,通过串口从单片机里读取数据,然后把数据写进数据库里,一个小时一条记录,一条记录161个字节,共31天的数据。我的MSComm设置是这样:MS... 我现在用vb做个数据分析软件,通过串口从单片机里读取数据,然后把数据写进数据库里,一个小时一条记录,一条记录161个字节,共31天的数据。我的MSComm设置是这样:
MSComm1.CommPort = 2 '...使用Com2口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.InputLen = 161 'input将读取接收缓冲区的全部内容
MSComm1.InBufferSize = 1024 '设置接收缓冲区的字节长度
MSComm1.RThreshold = 161
MSComm1.InBufferCount = 0 '清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
MSComm1.InputMode = comInputModeBinary '二进制模式接收

每接收到161个字节触发Oncomm事件,把161个字节保存在一个数组里,创建新的记录,然然把数组里的数据写入记录各对应字段里。

现在问题是这样,本来31天每天24小时,数据库里的记录应该有31*24=744条,但是现在只有734条,有时又是735条,而且读得的数据很乱,各个字段的数据完全对应不上,但我用串口调试助手读单片机的数据是正确的,请问为什么会出现这种情况?该怎样解决?
我是这样读数据的:
Dim da() As Byte
Dim indata As Variant

Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
MSComm1.InBufferCount = 0 '清空接收缓冲区内容
da = indata
展开
 我来答
zdingyun
2007-01-29 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48174
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
后一个数据乱问题,建议VB读单片机161字节数据命令本身应有引导符和结束符,以便接收代码将符合要求的命令进行处理,不合格命令不处理。串口线长通信受干扰.
前一个数据记录少的问题,不知你计算机是整月连续开着的吗?如运行一此程序,其第一条记录会延迟,这样一来会造成记录减少。你的计算机内部时钟慢.
http://zhidao.baidu.com/question/18050782.html
请参阅如上网址本人的答复。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式