Delphi串口通信编程.ppt

  1. 1、本文档共139页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Delphi串口通信编程;第一章根本概念;1、通信;数据传送;传送的方式;通信的种类;字符传输;位和字节;文本编码;非文本编码;帧;2、串行通信;RS-232串行通信;RS-485串行通信;USB〔UniversalSerialBus〕接口;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简述;串行通信相关函数;串行通信相关函数;HANDLECreateFile(

LPCTSTRlpFileName,//文件名指针

DWORDdwDesiredAccess,//存取〔读/写〕模式

DWORDdwShareMode,//共享模式

LPSECURITY_ATTRIBUTESlpSecurityAttribute,//securityattribute结构指针

DWORDdwCreationDistribution,//翻开文件的方式

DWORDdwAttrsAndFlags,//文件属性

HANDLEhTemplateFile//带属性复制的文件句柄

);;有关参数说明;BOOLCloseHandle(HANDLEhObject);

hObject:要关闭对象的句柄

当函数返回True时,表示关闭动作完成。;Var

FHandle:THandle;

ComName:array[0..4]ofchar;//ComName:string;

Begin

ComName:=‘COM1’;

//PCHAR(ComName)

FHandle:=CreateFile(ComName,GENERIC_READorGENERIC_WRITE,

0,nil,OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,0);

ifFHandleINVALID_HANDLE_VALUEthen

showmessage(‘串口翻开成功!’)

Else

showmessage(‘串口翻开失败!’);

CloseHandle(FHandle);

End;;GetCommState;_DCB=packedrecord

DCBlength:DWORD;//DCB结构的长度

BaudRate:DWORD;

文档评论(0)

199****8042 + 关注
实名认证
内容提供者

相信自己,相信明天

1亿VIP精品文档

相关文档