RS-232通信程序设计.ppt

上传人:pu****.1 文档编号:567633468 上传时间:2024-07-21 格式:PPT 页数:25 大小:1.05MB
返回 下载 相关 举报
RS-232通信程序设计.ppt_第1页
第1页 / 共25页
RS-232通信程序设计.ppt_第2页
第2页 / 共25页
RS-232通信程序设计.ppt_第3页
第3页 / 共25页
RS-232通信程序设计.ppt_第4页
第4页 / 共25页
RS-232通信程序设计.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《RS-232通信程序设计.ppt》由会员分享,可在线阅读,更多相关《RS-232通信程序设计.ppt(25页珍藏版)》请在金锄头文库上搜索。

1、实验三RS232通信程序设计1.实验要求设计两台主机通过RS232接口进行字符通信的Windows程序,实现最基本的双人聊天功能,理解物理层通信的实现过程。2.实验条件带有RS232接口的计算机,一条RS232连接线(双机互连或一台计算机的两个串口互连)。3.实验指导(1)RS232C接口9个引脚信号列表与时序3.实验指导引脚意义1.CDCarrierDetect数据载波侦测2.RDReceiveData接收数据3.TDTransmitData发送数据4.DTRDataTerminateReady数据终端准备好5.SGSingalSetReady地线6.DSRDataSetReady数据准备好

2、7.RTSRequestToSend请求发送8.CTSClearToSend清除发送9.RIRingIndicate铃声指示器(1)RS232C接口9个引脚信号列表与时序PCPCDTR步骤1DSR步骤2RTS步骤3DCD步骤4CTS步骤5TD步骤6RD步骤7(1)RS232C接口9个引脚信号列表与时序在Windows环境下设计串口通信程序,一种途径是利用Microsoft公司提供的ActiveX控件MSComm32.ocx,它为开发RS-232通信程序提供了简便方法。(详细属性见PPT附录,P1524)MSComm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.Drv解

3、释并传给设备驱动程序执行的,对于应用程序开发者只需知道MSComm控件的属性和事件的用法即可以实现对串口的操作。(2)MSComm32控件的属性通常按照下面的步骤来使用MSComm控件进行通信控制:加入MSComm对象;选定通信端口号,即设定Commport属性;设定通信参数,即Settings属性;确定采用中断或是轮询方式处理到达数据;开启通信端口,即将portOpen属性设为true;使用Input或Output属性,送出字符串或读入字符串;结束通信活动后,将通信端口关闭。(3)利用MSComm控件的通信步骤使用C#设计RS-232通信程序的关键有三点:MSComm控件的添加、控件属性设置

4、、使用控件接收和发送数据。(5)C#编程要点添加MSComm控件C#开发平台在缺省状态下工具箱中并无MSComm控件。1.“项目”“添加引用”“COM”菜单栏加入MicrosoftCommControl组件2.“工具”“选择工具箱项”“COM组件”菜单栏中选择MicrosoftCommunicationControl组件3.在工具箱中找到MSComm控件(带有电话机图标)4.把MSComm控件添加到FORM中。其缺省名字是axMSComm1,以下假定重命名为Comm1。(6)实验步骤若VS2005没有MSComm引用,需手动添加:(1)复制文件MSCOMM32.OCX到C:WINDOWSsys

5、tem32目录下。(2)注册组件:开始-运行-输入regsvr32mscomm32.ocx注意事项截图:添加引用截图:添加控件几个主要属性设置如下:Comm1.CommPort=3;/设定串口号Comm1.RThreshold=1;/当接收到1个字节数据时就触发OnComm事件Comm1.Settings=“9600,n,8,1”;/设置通信参数Comm1.InputLen=0;/利用Input可读取输入缓冲区所有到达的数据串口控件属性的设置数据的发送容易实现,只需将要发送的数据赋值给Output,代码示例如下:由于前面Rthreshold属性设置为1,所以只要有数据到达就会产生OnComm事

6、件,并将CommEvent属性值置为ComEvReceive使用控件接收和发送数据实现数据接收示例代码如下:使用控件接收和发送数据程序主界面(参考)CommPort属性该属性用于设置或返回连接的串口编号。Setting属性该属性用于设置或返回通信参数,属性值用字符串表示,主要设定波特率、奇偶检验、数据位数,停止位等4个参数。组成格式为:“BBBB,P,D,S”附录:(2)MSComm32控件的属性Handshaking属性该属性用于设置或返回硬件握手协议,即PC机与通信设备(如Modem)之间为了控制流速而约定的内部协议,属性值可以设置为如下的值:符号值数值描述ComNone0默认值,无握手协

7、议ComXOnOff1Xon/Xoff握手协议ComRTS2RTS/CTS握手协议comRTSXOnXOff3Xon/Xoff握手协议和RTS/CTS握手协议(2)MSComm32控件的属性PortOpen属性该属性用于打开或关闭端口。属性值为Boolean型。设为True可以打开端口;设为False可以关闭端口。OutBuffersize属性该属性用于设置或返回发送缓冲区大小,值为Integer型,表示发送缓冲区的字节数,缺省值为512字节。OutBufferCounter属性该属性用于返回发送缓冲区内等待发送的字节数,可用来清空缓冲区。(2)MSComm32控件的属性lOutPut属性该属

8、性用于通过发送缓冲区发送数据。lSThreshold属性该属性为一阀值,当输出缓冲区字节数小于该值后就产生OnComm事件,并且CommEvent属性会被设定为ComEvSend。如果该值为0(默认值),则不会因输出缓冲区变化产生OnComm事件。(2)MSComm32控件的属性InBuffersize属性该属性用于设置或返回输入缓冲区大小,缺省值为1024字节。InBufferCount属性该属性用于返回输入缓冲区内等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。InputLen属性该属性用于设置或返回接收缓冲区内用Input属性命令读入的字节个数。若取0(默认值),则Input属

9、性读取缓冲区中所有到达的字节。(2)MSComm32控件的属性Input属性该属性用于从接收缓冲区读取并移走数据,每次处理的字节数由InputLen属性的设定值决定。RThreshold属性该属性为一阀值,当接收缓冲区内字节个数达到或超过该值后就产生OnComm事件,并且CommEvent属性会被设定为ComEvReceive。如果该值为0(默认值),则无论有多少数据到达输入缓冲区都不会产生OnComm事件。(2)MSComm32控件的属性InputMode属性该属性用于设置或返回接收数据的类型。若取缺省值0(comInputModeText),则Input接收文本型数据。取值1(comInp

10、utModeBinary),则Input属性接收二进制数据。(2)MSComm32控件的属性DTREnable属性该属性确定在通信时是否使DataTerminalReady(DTR)线有效。DataTerminalReady是计算机发送到调制解调器的信号,指示计算机在等待接受传输。RTSEnable属性该属性确定是否使RequestTOSend(RTS)线有效。一般情况下,由计算机发送RTS信号到连接的调制解调器,以请示是否允许发送数据。(2)MSComm32控件的属性MSComm控件只有一个事件,即OnComm事件。事件驱动通信是处理串行端口交互作用非常有效的方法,依据产生的事件和错误,MS

11、Comm控件为CommEvent属性赋不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的CommEvent属性值执行不同的操作。OnComm事件与CommEvent属性(2)MSComm32控件的属性CommEvent属性设计时无效,运行时只读。常见CommEvent属性值如下:ComEvReceive:当Rthreshold属性值非零,则每当接收到Rthreshold个字节数据。该事件将持续产生,直到用Input属性从接收缓冲区中读取并删除数据。ComEvCTS:CTS信号线状态发生变化。ComEvntFrame:帧错误。ComEvntRxOver:接收缓冲区溢出,缓冲区中已没有空间。OnComm事件与CommEvent属性(2)MSComm32控件的属性

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号