用VC实现PC机与单片机的通信..doc
文本预览下载声明
用VC实现PC机与单片机的通信
王荣鸽 白连平
摘要 介绍了Windows98环境下利用Visual C++ 6.0的MSComm控件MSComm 单片机
中图分类号: TP311 文献标志码: A
Realization of Communications between PC and Singlechip with VC
Wang,Rongge Bai,Lianping
ABSTRACT: This paper introduces the designing meanses by which a computer can communicate with a computer or a singlechip by MSComm of Visual C++ 6.0 in the circumstance of Windows98,And fully provides the program examples of computer communication and singlechip communication.
Key Words: serial communications Visual C++ 6.0 MSComm singlechip
在工业检测及自动控制系统中,微机与微机、微机与单片机之间经常需要进行数据交换,串行通信是主要的通信手段,它高效、方便,并遵循统一的国家标准。Visual C++ 6.0作为一种强大的开发工具几乎在Windows软件开发的任何领域都得到广泛的应用。一般用Visual C++ 6.0开发串行通信程序有二种方法:一是利用Windows的通信 API函数;另一种是采用Visual C++ 6.0标准控件MSComm来实现。第一种方法需要声明及调用许多API函数,十分烦琐。第二种方法实现简便,且可满足一般情况下通信要求。 本文利用提供的MSComm通信控件编写较简单的VC程序, 完成了微机与单片机之间的 RS-232串行口通信单击Project菜单,从中选择Add to Project,在弹出的对话框中单击Components and Controls选项,然后在弹出的对话框中再单击Registered ActiveX Controls选项。在列表中选择Microsoft Communications Control (version6.0),形状为带有红色底座的黄色电话机。单击Insert按钮,确认后,会出现一个Confirm Classes对话框,其中列出了该控件的类名(CMSComm)、头文件名(MSComm.h)、执行文件名(MSComm.cpp)。关闭此对话框,在程序主界面的控件列表中,可以看到该通信控件已被加入,拖动该控件就可以将其放入程序中。
MSComm控件提供了功能完善的串口数据的发送和接收功能, MSComm控件具有两种处理方式: 1、事件驱动方式:由MSComm控件的OnComm事件捕获并处理通信错误及事件;2、查询方式:通过检查CommEvent属性的值来判断事件和错误。 MSComm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.drv解释并传给设备驱动程序执行的,对于VC程序开发者只需知道MSComm控件的属性和事件的用法即可以实现串口的操作。 以下是MSComm控件的主要属性和方法: 1) CommPort:设置或返回串行端口号,其取值范围为1~99,缺省为1。 2) Setting:设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。如:M scomm.Setting=9600,N,8,1。 3) PortOpen:打开或关闭串行端口,格式为:MSComm.PortOpen={T RUE|FALSE}。 4) InBufferSize:设置或返回接收缓冲区的大小,缺省为1024字节。 5) InBufferCount:返回接收缓冲区内的等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。 6) Rthreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件 。 7) InputLen::设置或返回接收缓冲区内用Input读入的个数。若取0,则INPUT读取整个缓冲区的内容。 8) Input: 该属性表示从接收缓冲区移走一串字符。 类型:VARIANT。 9) OutBufferSize:设置或返回发送缓冲区,缺省为512字节。 10) OutBufferCou
显示全部