文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C++Builder在 C++ Builder中利用串行通信控件编程
精品推荐
特别推荐
·菜鸟入门 认识C#中的委托和事件
·WINDOWS下的动态鼠标光标控制
热点TOP10
·用Builder C++设计串行口COM1或COM2的读写操作
·在C++ Builder中进行DirectX编程(2)
·在 C++ Builder中利用串行通信控件编程
·菜鸟入门 认识C#中的委托和事件
·用WinSock控件编写网络聊天器
·C++ Builder 中的自画功能
·C++ Builder VCL库函数简介
·用C++ Builder3 制作记事本
·C++BUILDER中一些实现界面效果的技巧
·在C++Builder利用NetBIOS进行编程
·C++Builder IDE使用技巧与快捷键
·深入VCL 理解BCB的消息机制(二)
·数字小键盘指法练习
·关于捕获VCL没有处理的Windows消息
·用C++Builder6制作Apache动态服务页
·用C++ Builder 5.0编HOOK程序
·C++Builder代码片断
·无废话C#设计模式之四:Factory Method
·C#动态生成树型结构的Web程序设计
·QuickReport基本知识

在 C++ Builder中利用串行通信控件编程

日期:2007年6月10日 作者: 查看:[大字体 中字体 小字体]


 摘要:串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。本文介绍了在C++ Builder中如何利用串行通信控件进行串行通信编程

  一、引言 目前,在用计算机进行数据传输时,常用的是串行通信方式。用C++ Builder来编写串行通信程序时,可以调用Windows API函数,也可以利用VB中的MSComm控件。 利用 API函数编写实际应用程序时,往往要考虑多线程的问题,这样编出来的程序不但十分庞大,而且结构比较复杂,继承性差,维护困难。但是使用串行通信控件就相对简单一些,而且功能强大,性能安全可靠。本文就简单的介绍一下在C++ Builder中利用MSComm控件进行编程。

  二、MSComm控件的常用属性和事件

  MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

  事件驱动方式

  在使用事件驱动法设计程序时,每当有新字符到达,或端口状态改变,或发生错误时,MSComm控件将解发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。这种方法的优点是程序响应及时,可靠性高。

  查询方式

  查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。

  1.MSComm 控件的常用属性

  CommPort属性:设置或返回通讯端口号,可以设置为1到16之间的任何值,本系统采用缺省值2;

  Settings属性:以字符串形式设置或返回波特率、奇偶校验、数据位和停止位,本系统采用缺省值"9600,n,8,1";

  PortOpen属性:设置或返回通讯口的状态以及打开和关闭端口,可通过把该属性设置为true或者false来打开或者关闭端口;

  InBufferSize和OutBufferSize属性:分别设置接收和发送缓冲区分配的内存数量,单位为字节,缺省值分别为1024byte和512byte;

  InputLen属性:确定希望从接收缓冲区移出的字符数量,当InputLen=0时,一次把接收缓冲区的字符全部移出;

  Input属性:从接收缓冲区中读出数据,然后将该数据从缓冲区移走。

  OutPut属性:向发送缓冲区传递待发送的数据。

  InBufferCount和OutBufferCount属性:分别确定当前驻留在接收缓冲区等待被取出和发送缓冲区准备发送的字符数量,这两个属性设置为0,接收和发送缓冲区的内容将被清除;

  InputMode属性:设置接收传入数据的格式,设置为0采用文本形式,设置为1采用二进制格式,本系统设置为二进制格式进行发送和接收;

  SThreshold属性:保存一个产生发送OnComm事件的界限值,本系统设置该属性为0,发送数据时不产生OnComm事件;

  RThreshold属性:设定当接收几个字符时触发OnComm事件,本系统设置该属性为1,每接收一个字符就产生一个OnComm事件;

  2.MSComm控件的事件
MSCOMM控件只使用一个事件OnComm,用属性CommEvent的十七个值来区分不同的触发时机。主要有以下几个:

  (1)CommEvent=1时:传输缓冲区中的字符个数已少于Sthreshold(可设置的属性值)个。

  (2)CommEvent=2时:接收缓冲区中收到Rthreshold(可设置的属性值)个字符,利用此事件可编写接收数据的过程。

  (3)CommEvent=3时:CTS线发生变化。

  (4)CommEvent=4时:DSR线发生变化。

  (5)CommEvent=5时:CD线发生变化。

  (6)CommEvent=6时:检测到振铃信号。

  另外十种情况是通信错误时产生,即错误代码。 三、程序的实现

  1.注册MSComm控件

  众所周知,C++Builder本身并不提供串行通讯控件MSComm,但我们却可以通过注册后直接使用它。启动C++Builder5.0后,然后选择C++Builder主菜单中的Component菜单项,单击Import Active Control命令,弹出Import Active窗口,选择Microsoft Comm Control6.0,再选择Install按钮执行安装命令,系统将自动进行编译,编译完成后即完成MSComm控件在C++Builder中的注册,系统默认安装在控件板的Active页,接下来我们就可以像使用C++Builder本身提供的控件那样使用新注册的MSComm控件了。(前提条件是你的机子上安装了Visual Basic,或者有它的库)

  2.具体实现

  新建一个工程Project1,把注册好的MSComm控件加入到窗体中,然后再加入5个ComboBox用来设置串口的属性,4个Button分别用来"打开串口" "关闭串口""发送数据""保存数据" ,2个Memo控件分别用来显示接收到的数据和发送的数据。再加入一个Shape控件用来标明串口是否打开。

[1] [2] [3] 下一页 




上一篇:利用组件传送文件

下一篇:C++ Builder中消息处理过程及应用

在 C++ Builder中利用串行通信控件编程 相关文章:
·“黑客”教你如何远程控制计算机
·DataGrid 控件的使用
·CS起源-控制台命令大全
·DataTable控件的使用
·AspNetPager分页控件--使用方法
·.Net分页控件发布
·Photoshop CS3教程:图层样式控制动画
·如何判断ACTIVEX控件是否下载
·Tomcat中用web.xml控制Web应用详解
·音量控制 随心所欲
在 C++ Builder中利用串行通信控件编程 相关软件:
·黑客视频教程-灰鸽子远控使用教程
·微方摄像头监控系统V7.5.02
·QQ远控精灵V2.0
·地面控制 2中文版
·网上特工网络监控系统 2006 V5.63
·微方摄像头监控系统v7.0
·风险管理与内部控制(普华永道)
·远程屏幕监控V3.0
·声音控制应用
·Visual Basic 6.0 控件参考手册

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn