注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
连接SQL SERVER的公共类(VB.NET)
使用Visual Studio 6.0 和Micros
一个自动生成用ADO调用SQL SERVE
VB访问SQLServer的探讨
用VC程序来创建SQL Server ODBC数
在 SQL Server 2K 中实现 大小写
利用vFloppy轻松把启动软盘装进硬
用 vi 多行注释
用vc实现生产者消费者问题
用Visual C++操作INI文件
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> VB >> 文章正文
用VB调试串口通讯
作者:solomn_mt  来源:csdn  点击:  更新:2006-12-19
简介:
 

现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。具体程序如下:控件简称:MSC

Dim Out(12) As Byte   '接收var中的值

Dim var As Variant   '接收MSC.input中的数值

Dim nRece As Integer   '计算MSC.inputbuffer的个数

Dim i As Integer, j As Integer  '随即变量,计算循环

****************************************************************************

Private Sub Form_Load()

    ClearText

    With MSC

        .CommPort = 1  '设置Com1为通信端口

        .Settings = "9600,E,7,2"  '设置通信端口参数 9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。

含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)

        .InBufferSize = 40  '设置缓冲区接收数据为40字节

        .InputLen = 1  '设置Input一次从接收缓冲读取字节数为1

        .RThreshold = 1  '设置接收一个字节就产生OnComm事件

    End With

End Sub

****************************************************************************

Private Sub ClearText()

    Text3.Text = ""

    Text2.Text = "5"

    Text1.Text = ""

End Sub

 

Private Sub Command1_Click()

    ClearText

'    nRece = 0  '计数器清零

    With MSC

        .InputMode = comInputModeBinary '设置数据接收模式为二进制形式

        .InBufferCount = 0  '清除接收缓冲区

        If Not .PortOpen Then

            .PortOpen = True   '打开通信端口

        End If

    End With

End Sub

Private Sub MSC_OnComm()

    DelayTime   ‘用来延续时间

    ClearText

    With MSC

        Select Case .CommEvent  '判断通信事件

            Case comEvReceive:  '收到Rthreshold个字节产生的接收事件

                SwichVar 1

                If Out(1) = 2 Then  '判断是否为数据的开始标志

                    .RThreshold = 0   '关闭OnComm事件接收

                End If

                Do

                    DoEvents

                Loop Until .InBufferCount >= 3  '循环等待接收缓冲区>=3个字节

'                nRece = nRece + 1

                For i = 2 To 12

[1] [2] 下一页






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务