预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

nilabwindowscvi串口编程rs232教程--NILabwindowsCVI串口编程RS232教程-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANnilabwindowscvi串口编程rs232教程--nilabwindowscvi串口编程rs232教程--4.4.1RS-232C接口介绍在介绍具体的RS-232函数库之前,本节先简要介绍RS-232C接口。美国电子工业协会(EIA)公布的RS-232C是用的最多的一种串行通信标准,它是从CCITT远程通信标准中导出的,用于数据终端设备(DTE)和数据通信设备(DEC)之间的接口。该标准包括按位串行传输的电气和机械方面的规定。一、接口信号RS-232C的机械指标规定:RS-232C接口通向外部的连接器(插针插座)是一种“D”型25针插头。由于25芯中有许多是不常用的,IBM-PC对其进行了简化,取了其中的常用的9芯,构成了9芯RS-232C串行接口,使其成为一种事实上的串行接口标准配置。RS-232C的“D”型9针插头引脚定义如图4-13所示。RS-232C标准接口中的主要信号是“发送数据”和“接收数据”,它们用来在两个系统或设备之间传送串行信息。对于异步通信,传输的串行位数据信息的单位是字符。二、数据传送格式和电气特性图4-14示出了RS-232C以位串行方式传输数据的格式,这是微机系统中最通用的格式。7位ASCII码数据的连续传送由最低有效数字位开始,而以奇偶校验位结束。应当指出,RS-232C标准接口并不限于ASCII数据,事实上还可有5到8个数据位,后加一奇偶校验位,并有1或2位停止位。在电性能方面,这一标准使用负逻辑。逻辑1电平是在-15V到-5V范围内,逻辑0电平则在+5V到+15V范围内。它要求RS-232C接收器必须能识别低至+3V的信号作为逻辑0,而识别高至-3V的信号作为逻辑1,这意味着有2V的噪声容限。RS-232C进行数据传输的最高速率为20KB/S,通信距离最长为15m。2nilabwindowscvi串口编程rs232教程--nilabwindowscvi串口编程rs232教程--4.4.2RS-232函数库概述LabWindows/CVI6.0提供的RS-232函数库主要包括以下几类函数:串行口打开/关闭(Open/Close)函数,串行口输入/输出(Input/Output)函数,串行口控制(Control)函数,串行口状态查询(Status)函数,串行口事件处理(Callbacks)函数。列表如下:3nilabwindowscvi串口编程rs232教程--nilabwindowscvi串口编程rs232教程--4.4.3RS-232编程举例利用LabWindows/CVI的RS-232函数库进行串行口应用编程时,主要包括以下几个步骤:首先要打开一个串行口并对其进行配置,然后用户就可以利用该串行口收发数据,程序结束之前则应当关闭该串行口。本节结合一个实例介绍RS-232函数库的使用方法。读者能在目录\samples\rs232\commcallback.prj下找到该例子。该实例利用计算机的串行口1实现了“自发自收”和“串行口事件检测”的功能。所谓“自发自收”指的是从计算机串行口发送出去的信息又被本计算机收到,而“串行口事件检测”的意思是当计算机的串行口检测到特定的字符时就弹出提示对话框。该例子虽然简单,但它非常有助于用户掌握串行口编程的基本思路和RS-232相关函数的使用方法。以下将分步骤介绍该该例程的实现方法。步骤一:编写界面,生成程序框架首先,用户应按照图4-15所示编写软面板。为方便用户编写软面板,表4-28列出了软面板上各控件的基本属性设置。图4-15软面板示意图表4-28软面板主要控件基本属性设置4nilabwindowscvi串口编程rs232教程--nilabwindowscvi串口编程rs232教程--软面板编完以后,用户就可以利用LabWindows/CVI自动生成程序框架,并进入步骤二。步骤二:打开串行口1并进行配置此部分代码添加在主函数中,如下所示:intmain(intargc,char*argv[]){if(InitCVIRTE(0,argv,0)==0)/*InitializeCVIlibraries*/return-1;/*outofmemory*/if((gPanelHandle=LoadPanel(0,"commcallback.uir",PANEL))<0)return-1;if((gHelpPanelHandle=LoadPanel(0,"commcallback.uir",HELP_PANEL))<0)return-1;OpenComConfig(1,"",9600,