电子书e书delphi串口通信编程.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi串口通信编程;第一章 基本概念;1、通信;数据传送;传送的方式;通信的种类;字符传输;位和字节;文本编码;非文本编码;帧;2、串行通信;RS-232串行通信;RS-485串行通信;USB(Universal Serial Bus)接口;IEEE-1394;USB与IEEE-1394的比较;3、硬件基础知识;常用的9条RS-232信号线;一次应答呼叫过程;?数据终端DTE的控制软件持续监视振铃指示RI,等待该 信号有效 ?响铃后, RI信号在ON和OFF状态之间交替变化。 ?DTE的通信控制软件在检测到振铃指示后,开始通过计 算机振铃指示的ON和OFF状态的变化次数来进行计数。 当达到程序设计的次数时,控制软件发出终端就绪信号 (DTR)有效,使Modem进行摘机状态,开始应答电话 ? Modem在等待一小段时间后,自动地发送它的应答载波 信号。同时Modem发出数据设备就绪信号(DSR),通 知DTE已经完成所有准备工作,正在等待对方的载波信 号;?在DTE发出数据终端就绪信号(DTR)期间,DTE的控制软件监视数据设备就绪信号(DSR)是否有效,当DSR为ON状态后,DTE便知道Modem已准备建立数据链路,于是DTE开始检测载波信号(DCD),以检查数据链路是否已经建立 ?当主叫Modem的载波信号出现在电话线上时,被叫Modem发出载波信号(DCD),以检查数据链路是否已经建立 ?在数据链路连接期间,发送数据(TxD)和接收数据(RxD)线上即开始了全又工通信。同时,DTE仍监视载波信号(DCD),以确定数据链路是否连接 ?数据传输结束后,DTE使数据终端就绪信号(DTR)无效, Modem撤消载波检测(DCD),并且使设备数据就绪信号(DSR)信号无效。数据候链路释放后, Modem和DTE返回到初始状态。 ;通信参数;数据的传送速度;数据的传送单位;起始位及停止位;校验位的检查;4、模式及流量;工作模式;串行数据的流动方式;握手;硬件握手;计算机->设备;设备->计算机;软件握手;5、接线和错误预防;接线方法;当使用RS-232与Modem进行连接时,直接连接即可 当使用RS-232和其他的设备进行连接时,有时就必须做必要的跳线;跳线;错误预防;错误预防原理: 将所传送的数值做相加的操作后与一个固定的除 数进行除法运算,所得的余数即为校验码。传送 与接收的双方只要针???其固定的检查方法分别进 行运算,比较后只要双方均一致,即正确;若不 一致,数据重传。;6、错误排除;波特率失配;校验错误;字长不匹配;停止位错;帧错;第2章 串行通信程序及组件建立;1、串行通信的WindowsAPI简述;串行通信相关函数;串行通信相关函数;HANDLE CreateFile( LPCTSTR lp, //文件名指针 DWORD dwDesiredAccess, //存取(读/写)模式 DWORD dwShareMode,//共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttribute, //security attribute结构指针 DWORD dwCreationDistribution, //打开文件的方式 DWORD dwAttrsAndFlags, //文件属性 HANDLE hTemplateFile//带属性复制的文件句柄 );;有关参数说明;BOOL CloseHandle(HANDLE hObject); hObject:要关闭对象的句柄 当函数返回True时,表示关闭动作完成。;Var Fhandle:THandle; ComName:array[0..4] of char; // ComName:string; Begin ComName:=‘COM1’; // PCHAR(ComName) FHandle := Create, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, , 0); if FHandle<>INVALID_HANDLE_VALUE then showmessage(‘串口打开成功!’) Else showmessage(‘串口打开失败!’); CloseHandle(FHandle); End;;GetCommState;_DCB = packed record DCBlength: DWORD; //DCB结构的长度 BaudRate: DWORD; //当前波特率 Flags: Longint;

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档