《VB(11)第五章 串口通信方法与实现1.ppt》由会员分享,可在线阅读,更多相关《VB(11)第五章 串口通信方法与实现1.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.1RS-232串口知识简介串口知识简介1.1.1RS-232串口管脚定义串口管脚定义管脚管脚 符号符号定定义义信号方向信号方向管脚管脚1CD 载波信号载波信号PC机机Modem82RXD 数据接收数据接收PC机机Modem33TXD 数据发送数据发送PC机机Modem24DTR PC机就绪机就绪PC机机Modem205GND 公共地公共地76DSR MODEM就绪就绪PC机机Modem67RTS PC机允许发送机允许发送PC机机Modem48CTS MODEM允许发送允许发送 PC机机Modem59RI 振铃信号振铃信号PC机机Modem221.1.4RS-232C串口通信参数串口通信参数
2、1.数据的传送速度数据的传送速度波波特特率率(bps)是是指指每每秒秒钟钟所所传传送送的的数数据据位位数数。原原始始信信号号经经过过不不一一样样的的波波特特率率取取样样后后,所所得的结果完全不同,如图所示:得的结果完全不同,如图所示:发送速度发送速度10原始信号原始信号0011000101001110接收速度接收速度2.数据的传送单位(数据包含的位数)数据的传送单位(数据包含的位数)例如:例如:1个起始位个起始位+8个数据位个数据位+0个校验个校验位位+1个停止位个停止位数据格式共有数据格式共有10位,位,所以通信中所以通信中最小的传最小的传输单位是输单位是10位。位。每秒钟传输的字节数(波特
3、率为每秒钟传输的字节数(波特率为9600bps,采用十位数据格式,则:采用十位数据格式,则:9600/10=960(字节(字节/秒)秒)传输传输1M字节的数据,需要的时间为:字节的数据,需要的时间为:1000000/96017(分)(分)因此,串口通信通常用在数据量不是很大的因此,串口通信通常用在数据量不是很大的场合。场合。1.1.7RS-232C串口通信的硬件连接串口通信的硬件连接1.单机模拟单机模拟方式方式使用一个使用一个串口(串口(COM1或或COM2)。)。将串口的将串口的第第2脚脚(RXD)与第与第3脚(脚(TXD)短接线短接线。单单机机模模拟拟串串口口通通信信的的另另外外一一种种方
4、方法法是是,制制作一条串口联接电缆,如下图所示:作一条串口联接电缆,如下图所示:2.两台计算机电缆联机方式两台计算机电缆联机方式在两台计算机上进行串口通信在两台计算机上进行串口通信,只要将上只要将上面制作的串口连接电缆的两端分别连接在两台面制作的串口连接电缆的两端分别连接在两台计算机的计算机的COM1(或或COM2)。)。1.2MSComm控件的属性和事件控件的属性和事件1.2.1MSComm控件的引用控件的引用在控件工具箱中添加在控件工具箱中添加“MicrosoftCommControl6.0控件,该控件的原文件为系统目控件,该控件的原文件为系统目录下的录下的System子目录中的子目录中的
5、MSComm32.ocx文件。文件。1.通信参数设置通信参数设置(1)CommPort属性属性语语法:法:MSComm1.CommPort=Value作作用:设置用:设置/返回通讯使用的串口号。返回通讯使用的串口号。类类型:型:Integer取取值:值:Value=1,2,16。举举例:例:MSComm1.CommPort=2说说明:必须在打开端口之前设置明:必须在打开端口之前设置CommPort属性。属性。(2)Settings属性属性语语法法:MSComm1.Settings=Value作作用用:设置或返回通信参数,通信参数设置或返回通信参数,通信参数包括波特率、奇偶校验位、数据位、停止位
6、。包括波特率、奇偶校验位、数据位、停止位。格格式式:BBBB,P,D,S类类型型:String取取值值:Value=“BBBB,P,D,S”。Settings属性的缺省值是属性的缺省值是9600,N,8,1“举举例例:MSComm1.Settings=1200,e,8,1(3)Handshaking属性属性语语法:法:MSComm1.Handshaking=Value作作用:设置或返回硬件握手协议。用:设置或返回硬件握手协议。类类型:型:Integer取取值:值:0-没有握手协议(默认)没有握手协议(默认);1-XON/XOFF;2-RTS/CTS;3-XON/XOFF和和RTS/CTS两者皆
7、可。两者皆可。2.打开打开/关闭端口关闭端口(4)PortOpen属性属性语语法法:MSComm1.PortOpen=Value作作用用:打打开开或或关关闭闭通通讯讯串串行行端端口口,在在设设计计时无效。时无效。类类型型:Boolean型型。取取值值:True(打开)打开)/False(关闭)关闭)。说说明明:必必须须保保证证CommPort和和Settings属性设置正确。属性设置正确。3.发送数据发送数据(5)OutPut属性属性语语法法:MSComm1.OutPut=Variant作作用用:向向输输出出缓缓冲冲区区写写数数据据流流并并将将数数据据发发送出去。送出去。类类型型:Varian
8、t型型取取值值:要传输的文本数据或二进制数。要传输的文本数据或二进制数。说说明明:传传输输文文本本数数据据时时,应应将将String型型数数据据放放入入Variant变变量量,传传输输二二进进制制数数据据(字字节节)时,应将时,应将Byte型数组数据放入型数组数据放入Variant变量。变量。举举例例:MSComm1.OutPut=Text1.text(6)OutBufferSize属性属性语语法法:MSComm1.OutBufferSize=Value作作用用:设置或返回输出缓冲区大小。设置或返回输出缓冲区大小。类类型型:Integer型型。取取值值:输输出出缓缓冲冲区区的的字字节节数数,默
9、默认认值值为为512字节。字节。OutBufferSize属属性性的的最最大大值值为为:32767字节。字节。OutBufferSize属性值应根据需要选取。属性值应根据需要选取。(7)SThreshold属性属性语语法:法:MSComm1.SThreshold=Value作作用用:设设置置或或返返回回发发送送缓缓冲冲区区中中允允许许的的最最小小字字符符数数。该该属属性性和和MSComm 控控件件的的OnComm事事件件有有关关联联。Sthreshold属属性性为为0(缺缺 省省 值值),数数 据据 传传 输输 事事 件件 不不 会会 产产 生生 OnComm事件。事件。类类型:型:Integ
10、er型型取取值:发送缓冲区中允许的最小字符数值:发送缓冲区中允许的最小字符数4.接收数据接收数据(8)Input属性属性语语法法:MSComm1.Input=Variant作作用用:从从接接收收缓缓冲冲区区中中接接收收数数据据并并将将数数据据读入应用程序中。读入应用程序中。类类型型:Variant型型。数数值值:接收缓冲区中收到的数据。接收缓冲区中收到的数据。说说明明:接接收收文文本本数数据据时时,读读入入的的数数据据为为String型型。接接收收二二进进制制数数据据时时,读读入入的的数数据据为为Byte型数组数据。型数组数据。举举 例例:Text1=MSComm1.Input(9)InBuf
11、ferSize属性属性语语法:法:MSComm1.InBufferSize=Value作作用:设置或返回接收缓冲区大小。用:设置或返回接收缓冲区大小。类类型:型:Integer型型取取值值:接接收收缓缓冲冲区区的的字字节节数数,默默认认值值为为1024字节。字节。InBufferSize属属性性的的最最大大值值为为:32767字节。字节。说说明:明:InBufferSize值应根据需要选取。值应根据需要选取。(10)InputMode属性属性语语法:法:MSComm1.InputMode=Value作作用:设置或返回接收数据的数据类型。用:设置或返回接收数据的数据类型。类类型:型:Intege
12、r型型取取值:值:0-接收文本型数据;接收文本型数据;1-接收二进制数据。接收二进制数据。说说明明:InputMode属属性性决决定定Input属属性性取取回回数数据据的的格格式式是是字字符符串串还还是是二二进进制制数数据据的的数组。数组。(11)InBufferCount属性属性语语法:法:MSComm1.InBufferCount=Value作作用用:返返回回接接收收缓缓冲冲区区中中已已传传到到但但还还未未取取走的字符个数,该属性在设计时无效。走的字符个数,该属性在设计时无效。类类型:型:Integer型型取取值:未取走的字符个数。值:未取走的字符个数。说说明:明:InBufferCoun
13、t是指已接收,并是指已接收,并在接收缓冲区等待被取走数据的字符数。可以在接收缓冲区等待被取走数据的字符数。可以把把InBufferCount属性设置为属性设置为0来清除接收来清除接收缓冲区。缓冲区。(12)RThreshold属性属性语语法:法:MSComm1.RThreshold=Value作作用用:设设置置或或返返回回在在接接收收多多少少个个字字符符数数时时,产产生生OnComm事事件件。与与SThreshold属属性性 相相 同同,该该 属属 性性 也也 和和 MSComm 控控 件件 的的 OnComm事件有关联。事件有关联。类类型:型:Integer型型取取值值:说说明明在在产产生生
14、OnComm事事件件之之前前要要接收的字符数。接收的字符数。说说明:明:当当接接收收字字符符后后,若若Rthreshold属属性性设设置为置为0(缺省值)则不产生(缺省值)则不产生OnComm事件。事件。设置设置Rthreshold为为1,接收缓冲区收接收缓冲区收到每一个字符都会产生到每一个字符都会产生OnComm事件。事件。5.状态控制状态控制(13)DTREnabled;(14)RTSEnabled;(15)DSRHolding;(16)CTSHolding;(17)CDHolding。以上五个属性均取值以上五个属性均取值True/False,用于用于读取或控制串口管脚的状态。读取或控制串
15、口管脚的状态。1.3编程串口通信程序编程串口通信程序用用VB编写串口通信程序的基本步骤如下:编写串口通信程序的基本步骤如下:在工程中在工程中加入加入MSComm控件;控件;设置设置CommPort属性选择通信串口;属性选择通信串口;设置设置Settings属性选择通信参数;属性选择通信参数;设置设置PortOpen=True打开通信串口;打开通信串口;使用使用Output或或Input属性发送或接收数据;属性发送或接收数据;通通信信任任务务结结束束后后,设设置置PortOpen属属性性为为False关闭串口。关闭串口。1.3.1最简单的串口通信程序最简单的串口通信程序1.通信的硬件连接通信的硬
16、件连接采用单机模拟通信方式,串口选择采用单机模拟通信方式,串口选择COM1(默认值),将默认值),将COM1的第的第2脚和第脚和第3脚端接。如果串口脚端接。如果串口COM1被占用,可以选择被占用,可以选择COM2。2.软件编程软件编程运行运行VB6.0,在弹出的在弹出的“新建工程新建工程”中,中,选选择择“标准标准EXE”选项,单击选项,单击“确定确定”按钮,按钮,进入进入VB6.0的集成开发环境。的集成开发环境。(1)界面设计界面设计(2)编写代码编写代码在在Form_Load中加入代码:中加入代码:MSComm1.PortOpen=True在在Command1_Click中加入代码:中加入
17、代码:MSComm1.Output=Text1.Text在在Command2_Click中加入代码:中加入代码:Text2.Text=MSComm1.Input在在Command3_Click中加入代码:中加入代码:End完整的程序代码如下:完整的程序代码如下:PrivateSubCommand1_Click()MSComm1.Output=Text1.TextEndSubPrivateSubCommand2_Click()Text2.Text=MSComm1.InputEndSubPrivateSubForm_Load()MSComm1.PortOpen=TrueEndSubPrivateSubCommand3_Click()EndEndSub(3)运行程序运行程序