您现在所在的是:

电脑编程

回帖:13个,阅读:11798 [上一页] [1] [2] [下一页]
870
Zenithy
文章数:15
年度积分:50
历史总积分:870
注册时间:2002/6/8
发站内信
发表于:2006/2/22 17:42:00
#10楼
使用Timer和doEvents函数和
Timer返回0点至今的秒数,doevents等待事件处理完毕

mscomm属性
handShaking :2  CTS/RTS
Sthreshold=1
Rthreshold=1
Inputlen=0
inbuffersize=1024
outbuffersize=512

接收数据时候是这样处理的:
private sub ON_msomm ()



dim l as long
l=timer
while abs(timer-l)<2   ‘延时2秒,用abs防止午夜时刻出错
  DoEvents
Wend
dim s as string
s=mscomm1.input

匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2002/9/12
发站内信
发表于:2006/9/21 16:33:00
#11楼
该用户被锁定,回复内容不予显示!
952
wenhao
文章数:21
年度积分:50
历史总积分:952
注册时间:2005/6/5
发站内信
发表于:2006/9/21 19:55:00
#12楼
只要你的缓冲区开得够大就可以了!!!!!
你设一下你的缓冲区吧!!!
MSCOMM不好用,一直都用SPCOMM
1193
马大哈
文章数:106
年度积分:50
历史总积分:1193
注册时间:2004/1/8
发站内信
发表于:2006/9/27 12:45:00
#13楼
有个思路给LZ:

就是开一个缓冲区,然后专用一个线程从串口收数据到缓冲区去.

然后处理过程直接从缓冲区里读内容.

因为串口的物理缓冲有限,当满了后,就会冲掉之前的数据.

关于在VB里安全地使用多线程,可以参考我以前为一个朋友写的多线程例子:

http://www.m5home.com/bbs/dispbbs.asp?boardID=10&ID=556&page=1

这是使用ActiveX EXE实现的.

API直接实现,不容易做稳定.
喜爱电子,喜爱电脑,喜爱编程,喜爱足球
欢迎电路/编程讨论!!!!
With 马大哈
 .身高=170
 .体重=76
 .智力=!#^@ (系统提示:对象不支持该属性)
 .编程水平=中等偏低
 .常用平台=VB6
 .主页=http://www.m5home.com
 .在线时间=20:30 - 0:30
End With

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005