RS232 通信程序设计.ppt

上传人:仙人指路1688 文档编号:2261995 上传时间:2023-02-07 格式:PPT 页数:25 大小:1.05MB
返回 下载 相关 举报
RS232 通信程序设计.ppt_第1页
第1页 / 共25页
RS232 通信程序设计.ppt_第2页
第2页 / 共25页
RS232 通信程序设计.ppt_第3页
第3页 / 共25页
RS232 通信程序设计.ppt_第4页
第4页 / 共25页
RS232 通信程序设计.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《RS232 通信程序设计.ppt》由会员分享,可在线阅读,更多相关《RS232 通信程序设计.ppt(25页珍藏版)》请在三一办公上搜索。

1、实验三 RS232通信程序设计,1.实验要求 设计两台主机通过RS232接口进行字符通信的Windows程序,实现最基本的双人聊天功能,理解物理层通信的实现过程。2.实验条件 带有RS232接口的计算机,一条RS232连接线(双机互连或一台计算机的两个串口互连)。,3.实验指导,(1)RS232C 接口9个引脚信号列表与时序,3.实验指导引 脚 意 义1.CD Carrier Detect 数据载波侦测2.RD Receive Data 接收数据3.TD Transmit Data 发送数据4.DTR Data Terminate Ready 数据终端准备好5.SG Singal Set Re

2、ady 地线6.DSR Data Set Ready 数据准备好7.RTS Request To Send 请求发送8.CTS Clear To Send 清除发送9.RI Ring Indicate 铃声指示器,(1)RS232C 接口9个引脚信号列表与时序,PC PC DTR步骤1 DSR 步骤2 RTS步骤3 DCD步骤4 CTS步骤5 TD步骤6 RD步骤7,(1)RS232C 接口9个引脚信号列表与时序,在Windows环境下设计串口通信程序,一种途径是利用Microsoft公司提供的ActiveX控件MSComm32.ocx,它为开发RS-232通信程序提供了简便方法。(详细属性见

3、PPT附录,P1524)MSComm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.Drv解释并传给设备驱动程序执行的,对于应用程序开发者只需知道MSComm控件的属性和事件的用法即可以实现对串口的操作。,(2)MSComm32控件的属性,通常按照下面的步骤来使用MSComm控件进行通信控制:加入MSComm对象;选定通信端口号,即设定Commport属性;设定通信参数,即Settings属性;确定采用中断或是轮询方式处理到达数据;开启通信端口,即将portOpen属性设为true;使用Input或Output属性,送出字符串或读入字符串;结束通信活动后,将通信端口关闭

4、。,(3)利用MSComm控件的通信步骤,使用C#设计RS-232通信程序的关键有三点:MSComm控件的添加、控件属性设置、使用控件接收和发送数据。,(5)C#编程要点,添加MSComm控件C#开发平台在缺省状态下工具箱中并无MSComm控件。1.“项目”“添加引用”“COM”菜单栏加入Microsoft Comm Control组件2.“工具”“选择工具箱项”“COM组件”菜单栏中选择Microsoft Communication Control组件3.在工具箱中找到MSComm控件(带有电话机图标)4.把MSComm控件添加到FORM中。其缺省名字是axMSComm1,以下假定重命名为C

5、omm1。,(6)实验步骤,若VS2005没有MSComm引用,需手动添加:(1)复制文件MSCOMM32.OCX到C:WINDOWSsystem32目录下。(2)注册组件:开始-运行-输入 regsvr32 mscomm32.ocx,注意事项,截图:添加引用,截图:添加控件,几个主要属性设置如下:Comm1.CommPort=3;/设定串口号Comm1.RThreshold=1;/当接收到1个字节数据时就触发OnComm事件Comm1.Settings=“9600,n,8,1”;/设置通信参数 Comm1.InputLen=0;/利用Input可读取输入缓冲区所有到达的数据,串口控件属性的设

6、置,数据的发送容易实现,只需将要发送的数据赋值给Output,代码示例如下:由于前面Rthreshold属性设置为1,所以只要有数据到达就会产生OnComm事件,并将CommEvent属性值置为ComEvReceive,使用控件接收和发送数据,实现数据接收示例代码如下:,使用控件接收和发送数据,程序主界面(参考),CommPort属性 该属性用于设置或返回连接的串口编号。Setting属性 该属性用于设置或返回通信参数,属性值用字符串表示,主要设定波特率、奇偶检验、数据位数,停止位等4个参数。组成格式为:“BBBB,P,D,S”,附录:(2)MSComm32控件的属性,Handshaking属

7、性该属性用于设置或返回硬件握手协议,即PC机与通信设备(如Modem)之间为了控制流速而约定的内部协议,属性值可以设置为如下的值:符号值 数值 描述ComNone 0 默认值,无握手协议ComXOnOff 1 Xon/Xoff握手协议ComRTS 2 RTS/CTS握手协议comRTSXOnXOff 3 Xon/Xoff握手协议和RTS/CTS握手协议,(2)MSComm32控件的属性,PortOpen属性 该属性用于打开或关闭端口。属性值为Boolean型。设为True可以打开端口;设为False可以关闭端口。OutBuffersize属性 该属性用于设置或返回发送缓冲区大小,值为Integ

8、er型,表示发送缓冲区的字节数,缺省值为512字节。OutBufferCounter属性 该属性用于返回发送缓冲区内等待发送的字节数,可用来清空缓冲区。,(2)MSComm32控件的属性,OutPut属性该属性用于通过发送缓冲区发送数据。SThreshold属性该属性为一阀值,当输出缓冲区字节数小于该值后就产生OnComm事件,并且CommEvent属性会被设定为ComEvSend。如果该值为0(默认值),则不会因输出缓冲区变化产生OnComm事件。,(2)MSComm32控件的属性,InBuffersize属性该属性用于设置或返回输入缓冲区大小,缺省值为1024字节。InBufferCoun

9、t属性该属性用于返回输入缓冲区内等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。InputLen属性该属性用于设置或返回接收缓冲区内用Input属性命令读入的字节个数。若取0(默认值),则Input属性读取缓冲区中所有到达的字节。,(2)MSComm32控件的属性,Input属性 该属性用于从接收缓冲区读取并移走数据,每次处理的字节数由InputLen属性的设定值决定。RThreshold属性 该属性为一阀值,当接收缓冲区内字节个数达到或超过该值后就产生OnComm事件,并且CommEvent属性会被设定为ComEvReceive。如果该值为0(默认值),则无论有多少数据到达输入缓冲

10、区都不会产生OnComm事件。,(2)MSComm32控件的属性,InputMode属性 该属性用于设置或返回接收数据的类型。若取缺省值0(comInputModeText),则Input接收文本型数据。取值1(comInputModeBinary),则Input属性接收二进制数据。,(2)MSComm32控件的属性,DTREnable属性 该属性确定在通信时是否使Data Terminal Ready(DTR)线有效。Data Terminal Ready是计算机发送到调制解调器的信号,指示计算机在等待接受传输。RTSEnable属性 该属性确定是否使Request TO Send(RTS)

11、线有效。一般情况下,由计算机发送RTS信号到连接的调制解调器,以请示是否允许发送数据。,(2)MSComm32控件的属性,MSComm控件只有一个事件,即OnComm事件。事件驱动通信是处理串行端口交互作用非常有效的方法,依据产生的事件和错误,MSComm控件为CommEvent属性赋不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的CommEvent属性值执行不同的操作。,OnComm事件与CommEvent属性,(2)MSComm32控件的属性,CommEvent属性设计时无效,运行时只读。常见CommEvent属性值如下:ComEvReceive:当Rthreshold属性值非零,则每当接收到Rthreshold个字节数据。该事件将持续产生,直到用Input属性从接收缓冲区中读取并删除数据。ComEvCTS:CTS信号线状态发生变化。ComEvntFrame:帧错误。ComEvntRxOver:接收缓冲区溢出,缓冲区中已没有空间。,OnComm事件与CommEvent属性,(2)MSComm32控件的属性,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号