| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:看看简单的通信代码?
只看楼主 加入收藏
lcrxl1815
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-9
收藏
 问题点数:0 回复次数:1 
看看简单的通信代码?
Option Explicit

Dim ary() As String
Dim buf As Variant
Dim i As Integer

Private Sub Form_Load()
= 2
MSC.Settings = "1200,n,8,1"
MSC.InBufferCount = 0
MSC.OutBufferCount = 0
MSC.InputLen = 9
MSC.RThreshold = 9
MSC.PortOpen = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
If MSC.PortOpen = True Then MSC.PortOpen = False
End Sub

Private Sub MSC_OnComm()
Select Case
       Case comEvReceive
       buf = MSC.Input
       Do While (Left(buf, 1) <> "=" And Len(buf) <> 9)
            txtReceive.Text = ""
            buf = ""
            buf = MSC.Input
        Loop
        txtReceive.Text = buf
        Case comEvSend
End Select
End Sub
仪表所发送过来的数据是以“=”开始的9位数据,比如=51.07000=51.07000=51.07000=……,在这里用的do while … loop语句是为了防止出现乱码,如果(Left(buf, 1) <> "=") And (Len(buf) <> 9)将进行循环等待,是为了保证给txtReceive.Text所赋值是以“=”开始的9位数据!
     以上这两种方法都不行,不知那儿错了,是不是我哪儿有逻辑方面的错误?请您指正,如果您有更好的办法,请您提醒一下!谢谢!
搜索更多相关主题的帖子: 通信 代码 
2008-09-16 20:15
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
不了解Comm,但是我估计在执行Do Loop的时候是类似于死循环的,就是一点资源都不给串口通信,于是根本没法前进。
解决方法是把“DoEvents”语句插到循环内,将资源交给其他需求。
2008-09-16 23:02
快速回复:看看简单的通信代码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040913 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved