欢迎来到天天文库
浏览记录
ID:22353657
大小:46.00 KB
页数:8页
时间:2018-10-28
《vc基于mscomm控件串口通讯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC基于MSCOMM控件串口通讯2010-03-2416:46在mfc中进行串口通讯最简单的方法莫过于在对话框中使用MSCOMM控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工、事件驱动的、高效实用的通信程序。一、用MSComm控件通信1.串口通信基础知识 一般悦来,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与pC进行数据传输和皿信的通道。这些串口在CPU
2、和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM.DRV解释并传递给设备驱动程序,作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通信控件的属性和事件即可。2.使用Mscomm控件在开始使用MSComm控件之前。需要先了解其属性、事件或错误属性
3、 描述CommPort 设置或返回通信端口号Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口Input 返回和删除接收缓冲区中的字符Output 将字符串写入发送缓冲区CommEvent属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。常量 值 描述ComEventBreak 1001 收到了断开信号ComEventCTSTO 1002 ClearToSen
4、dTimeout。在发送字符时,在系统指定的事1件内,CTS(ClearToSend)线是低电平ComEventDSRTO 1003 DataSetReadyTimeout。在发送字符时,在系统指定的事件内,DSR(DataSetReady)线是低电平ComEventFrame 1004 数据帧错误。硬件检测到一个数据帧错误ComEventOverrun1006 端口溢出。硬件中的字符尚未读,下一个字符又到达,并且丢失ComEventCDTO 1007 CarrierDetectTime。在发送字符时,在系统指定的事件内,CD(Carrie
5、rDetect)线是低电平。CD 也称为RLSD(ReceiveLineSingalDetect,接收线信号检测)ComEventRxOver 1008 接收缓冲区溢出。在接收缓冲区中没有空间ComEventRxParity1009 奇偶校验错。硬件检测到奇偶校验错误7ComEventTxFull 1010 发送缓冲区满。在对发送字符排队时,发送缓冲区满ComEventDCB 1011 检取端口DCB(DeviceControlBlick)时发生了没有预料到的错误通信事件包含了下面的设置:常量
6、 值 描述ComEvSend 1 发送缓冲区中的字符数比Sthreshold值低ComEvReceive 2 接收到了Rthreshold个字符。持续产生该事件,直到使用了Input属性删除了接收缓冲区中的数据ComEvCTS 3 CTS(ClearToSend)线改变ComEvDSR 4 DSR(DataSetReady)线改变。当DSR从1到0改变时,该事件发生ComEvCD 5 CD(CarrierDetect)线改变ComEvRing6检测到响铃信号。一些URAT(
7、UniversalAsynchronousReciver- -Transmitters,通用异步收发器)不支持该事件ComEvEOF 7 收到了EOF字符(ASCII字符26)Error消息(MSComm控件)下表列出了MSComm控件可捕获的错误消息:常量 值 描述ComInvalidPropertyValue 380 无效的属性值ComSetNotSupported
此文档下载收益归作者所有