PC串口通信程序设计[7]

发布时间:   来源:文档文库   
字号:
4.3PC串口通信程序设计[7]
Windows环境下,串口是系统资源的一部分。应用程序要使用串口进行通信,必须在使用前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。在Windows的系统函数中,均包含了支持通信中断的功能。对串口通信而言,Windows为相应的串口设备开放了用户定义的输出缓冲区和输入缓冲区,应用程序只能对输入/输出缓冲区进行操作,数据进出串口的操作均由系统后台完成。以接收为例,系统每接收一个字符就产生一个低级的硬件中断,系统的串口驱动程序将接收到的字符送入输入缓冲区,此时应用程序就可以通过访问输入缓冲区得到接收到的字符信息。
Windows为用户提供了两种方式实现串口通信:
针对串口通信,微软公司专门提供了MSComm控件,
●使用串口通信控件
使用该控件进行串口通信设计是十分方便的,程序员不必花时间去了解较为复杂的API函数。通过简单的修改控件的属性和使用控件提供的方法,就可以实现对串口的配置、完成串口接收和发送数据。
●使用WindowsAPI应用程序接口Windows中,串口是以文件的形式被打开和访问的。串口和串口通信驱动需要使用设备控制块DCBDeviceControlBlock进行配置。应用程序使用API函数CreateFile打开串口,ReadFile读串口,CreateEvent建立事件对象和CloseHandle关闭串口。
使用串口通信控件进行串口程序开发极为方便,如果不需要对串口进行高级控制一般多选择使用MSComm控件进行开发。本章介绍在VB下使用MSComm控件进行计算机实验室温控系统串口程序开发。4.3.1MSComm控件介绍[7]
MicronsoftCommunicationsControl(MSCommMicronsoft公司提供的简化Windows下串口通信编程的ActiveX控件,它为应用程序提供了通过串口收发数据的简便方法。在串口编程中,使用MSComm控件非常方便,仅需通过简单的修改控件的属性和使用控件提供的方法,就可以实现对串口的配置,完成串口接收和发送数据等任务。(一)MSComm控件的通信方法
MSComm控件提供了两种处理通信的方式:事件驱动方式和查询方式。

(二)MSComm控件的属性与常数1.CommPort属性
设置并返回通信端口号。端口号的范围为116,但如果用PortOpen属性打开一个并不存在的端口时,MSComm控件会产生错误68(设备无效)。该属性应在打开端口之前设置。
2.RThreshold属性设置返回的要接收的字符数。接收字符后,如果Rthreshold属性被设置为0(默认值),则不产生OnComm事件,如果Rthreshold被设成n,则接收缓冲区收到n个字符时MSComm控件产生OnComm事件。3.CTSHolding属性
确定是否通过查询ClearToSendCTS)线的状态发送数据。该属性在设计时无效,在运行时为只读。4.SThreshold属性
设置并返回传输缓冲区中允许的最小字符数。若SThreshold属性被设置为0(默认值)时,数据传输不会产生OnComm事件。而当SThreshold属性被设为1,当传输缓冲区完全空时,MSComm控件产生OnComm事件。5.CDHolding属性
通过查询CarrierDetectCD)线的状态确定是否有传输。该属性在设计时无效,在运行时为只读。6.DSRHolding属性
确定DataSetReadDSR)线的状态。该属性在设计时无效,在运行时为只读。
7.Settings属性
设置返回波特率、奇偶校验、数据位、停止位参数。当端口打开时,如果属性值非法,则MSComm控件产生错误380(非法属性值)Settings属性的设置由4个设置组成,格式如下:
BBBB
P
D
S

各个属性值间用逗号隔开,其中BBBB为波特率,P为奇偶校验,D为数
据位数,S为停止位数。其默认值为“9600,N8,1

8.InputLen属性
设置并返回Input属性从接收缓冲区中读取的字符数。InputLen属性的默认值是0。设置InputLen0时,使用Input将使MSComm控件读取缓冲区中全部的内容。在使用Input前,用户可以选择检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。


本文来源:https://www.2haoxitong.net/k/doc/ca8af6d049649b6648d7470a.html

《PC串口通信程序设计[7].doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式