碧波液压网 欢迎你,游客。 登录 注册

VC中基于MSCOMM控件串行通信程序的开发

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引言

  串行通迅较之并行通讯,虽然技术相对复杂一点,但其成本低、操作方便、可靠性高、传输距离长的特点使其应用广泛。它实现了计算机与外部串行设备(如打印机、CRT终端设备、传真机以及远程数据采集设备等)之间的数据传 输。利用VC中的MSComm控件可以快速方便的开发出具有个性化的通信软件以满足不同的要求。该应用程序支持常用的300~115200bps波特率, 能设置校验、数据位和停止位,能接收或发送二进制,十六进制数据或字符,可以任意设定自动发送周期等,使用非常方便。

  2 基于VC的串口通信实现途径

  Visual C++(version 6.0)的功能十分强大,提供了多种方法来实现计算机间的串口通迅。

  2.1 标准通信函数编程

  VC++中的标准通信函数_inp、 _inpw、_inpd、_outp、_outpw、_outpd等,可以对串口进行操作,对UART内部寄存器进行读出或写入操作。函数使用较为简单,但串口通迅设置比较复杂,需对硬件电路的结构工作原理十分熟悉,才能进行通信。

  2.2 Windows通信API

  通信API是 Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,是Windows的一种通信机制。Windows API不用对计算机硬件进行操作,使用范围较广。但其函数体庞大、结构复杂,实际编译完成后的程序不易阅读、继承性差。使用者同时需要对Windows的 结构体系具有一定的认识,有基础的专业人员才能熟练进行编程。

  2.3 面向对象编程设计

  VC可以调用专门用于串行通信的串口类,可以 根据对象的不同进行功能定做,并可由该类派生出具有特殊功能的类。但串口类只完成对底层串口通讯的封装,在使用的时候仍然要进行大量的编程完善,使用并不便捷。

  2.4 调用Active 控件(MSComm)

  MSComm(Microsoft Communication control)控件是Microsoft公司提供的简化Windows下串行接口收发数据的简便方法。它包装了类的成员函数可以访问组件接口的属性,形 成接口类,提供了一系列标准通讯命令的使用接口,不需要对硬件进行操作,参数属性设置便捷。 MSComm控件在多种开发平台中都可方便调用,运行稳定,串口通迅操作相当简便。

  3 通讯程序的开发

  3.1 在vc中新建工程并添加控件

  如图1所示:

  3.2 MSComm处理数据的方法—事件驱动法:

  MSComm处理数据是通过检查MSComm控件的CommEvent属性的值来判断所发生的事件或者错误。当有事件或错误发生的时候,事件OnComm由MSComm控件解发,被执行程序捕捉后,依据CommEvent属性的 值,系统就可以知道如端口状态改变,新字符到达,发生错误等所发生的事件。通常所说的查询法,同样是通过检查CommEvent属性的值来确定事件和发生 的错误。只不过后者是在执行一段程序,经过一定时间后才检查CommEvent属性的值从而做出响应,而前者是即时查阅即时处理,二者只是程序设计上的不 同无本质区别。事件驱动法的优点是程序响应及时、可靠性高、应用广泛。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论