登录
首页 电脑编程
回帖 发帖
正文

主题:VB mscomm 接收数据不全,恳请高手赐教!!!!

点击:11992 回复:13

使用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
06-02-22 17:42
该用户被锁定!
06-09-21 16:33
只要你的缓冲区开得够大就可以了!!!!!
你设一下你的缓冲区吧!!!
MSCOMM不好用,一直都用SPCOMM
06-09-21 19:55
有个思路给LZ:
就是开一个缓冲区,然后专用一个线程从串口收数据到缓冲区去.
然后处理过程直接从缓冲区里读内容.
因为串口的物理缓冲有限,当满了后,就会冲掉之前的数据.
关于在VB里安全地使用多线程,可以参考我以前为一个朋友写的多线程例子:
http://www.m5home.com/bbs/dispbbs.asp?boardID=10&ID=556&page=1
这是使用ActiveX EXE实现的.
API直接实现,不容易做稳定.
06-09-27 12:45

上一页 上一页

工控新闻

更多新闻资讯