串口通信-MSComm控件使用详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口通信-MSComm控件使用详解 2O121M3O0J5OM8 控件塩裡Delphi,程(13)▼ MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能.MSC。皿控件在串口編 程时非常方便.程序员不必去花时问去了解较为复杂的API函数.而且在VC、VB、Delphi等语村中 均可使用.Microsoft Communications Control (以卜简称 MSComm〉是Microsoft 公司提供的简 化Windows卜串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。 具体的来说,它提供了两种处理通信问题的方法:一是事件弥动(Event-driven)方法,一是査询法. MSComm控件两种处理通讯的方式 1.1事件驱动方式 事件驱动通讯是处理申行端口交作用的一种非常有效的方法。在许多情况卜,在事件发生时需要得 到通知,例如.在串口接收缓冲区中有字符,或者Carrier Detect (CD)或Request To Send (RTS) 线上一个字符到达或一个变化发生时.在这些情况卜《可以利用MSComm控件的OnCom事件捕获并 处理这些通讯事件? OnCono事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参 阅CommEvent W性。在编程过程中.就叮以在OnComm事件处理函数中加入自己的处理代码。这种方 法的优点是程序响应及时.W靠性高。每个MSComm控件对应着一个串行端口。如果应用程序需要访 何多个串行端口,必须使用多个MSComm控件。 1.2査询方式 査询方式实质上还是事件驱动,但在有些情况R这种方式显得更为便捷.在程序的每个关涯功能之 后,可以通过检査CommEvent属性的值来査洵事件和错误。如果应用程序絞小,并且是自保持的, 这种方法可能是更可取的。例如.如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都 产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。 MSC。皿控件的常用属性 MSCommi .Settings : = r 9600f nr 8r ; //设置波特率,校验位■数据位,停止位 Settings属性:设置串口的波特率,校验位,数据位,停止位,,9600,n,8,l/表示波特率为 9600,无奇偶校 验,数据位为8为,1位停止位 MSComml .InBufferSize:=1024; // 接受缓冲区大小 InBufferSize属性:接收缓冲区的大小,状认值为1024,也可以自己设定,比如, MSCorranl. InBuf f er Size: =2000 r则接收缓冲区的大小为2000字节 MSComml .OutBufferSize :=1024 ; // 发送缓冲区大小 OutBufferSize属性:发送缓冲区的大小.默认值为1024,也可以口己设定。 MSComml. InBuf ferCount: =0; //清空接受缓冲区 InBuffercount属性:当前接收缓冲区接收到的数据的长 度, couni;: =MSComml. InBufferCount/ 贝I count值就是接收缓冲区接收到的数据的长度,对InBufferCount 赋 值 MSComml. InBufferCount: =0 r凹以清空接受缓冲区 MSComml. OutBufferCount: =0; //清空发送缓冲区 OutBufferCount属性:当前发送缓冲区中数据的长度,对Ou^Buf ferCounc赋值 MSComnl. OutBuf ferCount: =0r 口I以清空发送缓冲区 MSComml. InputMode: =comInputModeText; // 以文本方式取回数据 MSCommi . InputMode: =comInpuCMode3inary; 〃设置接收数据模式为二进制形式 InputMode属性:串口接收数据的模式,comZnputMcdeText (0)表示以文4^ (ASCII)方式取回数 据, comlnputModeBlnary (1)表示以二进制方式取回数据 comlnputModeText^ comlnputModeBinary 为预定义常量/ 分别表示 0,1 RcvByte:=MSComml.Input Input属性:通过Input届性可以读取串口中接收到的数Wi, RcvByte: =MSComml. Input表示读 取串口接收到的数据,其中RcvByte的数据类型>9: array of Byte或array of Variant. /?:读取之前先设賞 RcvByte 的长度:SetLength (RcvByte, len

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体土默特左旗农特农机经销部
IP属地广西
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档