VB 串口通讯奇怪现象?

我用的是VB中mscomm控件。做了一个测试电机的小程序。我用新式的台式机测试,速度3秒钟完成。但用笔记本电脑与旧式台式机,速度变为20秒。测试软件及电路及串口连接线都不... 我用的是VB中 mscomm控件。做了一个测试电机的小程序。我用新式的台式机测试,速度3秒钟完成。但用笔记本电脑与旧式台式机,速度变为20秒。测试软件及电路及串口连接线都不变的情况下,电脑一更换速度就会变掉,而且相当的离谱,请高手告之是何原因?在不使用API的情况下如何解决?怀疑自己用的MSCOMM控件有不足的地方,请高手指证。高分求助。 展开
 我来答
尼欧赵
2009-01-19 · TA获得超过823个赞
知道大有可为答主
回答量:1597
采纳率:0%
帮助的人:1207万
展开全部
很明显是你程序写得有问题。一般都是瞬时完成。我用的笔记本是酷睿2.0G,1G内存。你用定时器,每半秒通信一次。一次可以读20个数据的。如果小于200ms通信,可能电机那边的下位机反应不过来。
也许控件的版本和系统不兼容,但是我的vb6.0迷你版和xp没问题的。
也许是所有的计算变量你用的是控件的文本属性,而不是变量,这样也会使速度变慢的。
百度网友857c43957
2008-12-29
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
1、InBufferCount属性用于返回输入缓冲区内等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。InputLen属性用于设置并返回每次Input属性从接收缓冲区中读取的字符数,其缺省值为0。设置InputLen为0时,Input将读取接收缓冲区的全部字符。
故接收数据大小没有限制。但要注意发送端OutBufferCount属性,该属性用于设置或返回发送缓冲区大小,值为Integer型,表示传输缓冲区的字节数,缺省值为512字节。
2、发送:MSComm1.Output = Text1.Text
接收:If MSComm1.InBufferCount > 0 Then
Text2.Text = Text2.Text + MSComm1.Input
不用textbox的话可以定义一个指针来发送和接收数据。
3、你去查一下senddata定义的数据类型。最大收发数,由数据类型来限制。

4、应该是使用socket对像的getdata与senddata方法来完成。
你最好写两个程序,一个服务端,一个客户端。这样服务器端监听,客户端联接。两者握手联接后,就可以通信了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pan_tiger
2009-01-07 · TA获得超过458个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:136万
展开全部
变为20秒?
1、
是否将所有代码都放在了text里面,并且随时刷新,这样很耗费资源的,在电脑配置相差较大的时候,时间差别很明显,如果是这样,程序应该接近于不响应
办法:放到string变量中,最后再显示
2、是否mscomm版本问题,建议将程序打包后安装在别的电脑上试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
痛苦延续XU
2009-01-02 · 超过21用户采纳过TA的回答
知道答主
回答量:242
采纳率:0%
帮助的人:0
展开全部
应该是使用socket对像的getdata与senddata方法来完成。
你最好写两个程序,一个服务端,一个客户端。这样服务器端监听,客户端联接。两者握手联接后,就可以通信了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唯漠情
2009-01-13 · TA获得超过3383个赞
知道大有可为答主
回答量:5510
采纳率:62%
帮助的人:2462万
展开全部
应该不是机子的问题,程序的不完善会造成这样的情况。

仔细看看comm控件的属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式