您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > LabWindowsCVI串口通信函数
1LabWindows/CVI串口通信函数LabWindows/CVI提供的RS-232函数库主要包括以下几类函数:串行口打开/关闭(Open/Close)函数,串行口输入/输出(Input/Output)函数,串行口控制(Control)函数,串行口状态查询(Status)函数和串行口事件处理(Callbacks)函数。下面分别予以介绍。1.串行口打开/关闭函数1)OpenCom函数功能:表示以默认的参数设置方式打开一个串口。该函数原型为:intOpenCom(intCOM_Port,charDevice_Name[])其中,参数COM_Port为整型变量,用于指定串口号,有效范围为1~1000;Device_Name[]为字符型数组,是用ASCⅡ码字符串表示的串口名。2)OpenComConfig函数功能:用来打开一个串行口并进行相关的参数设置。该函数原型为:intOpenComConfig(intCOM_Port,charDevice_Name[],longBaud_Rate,intParity,intData_Bits,intStop_Bits,intInput_Queue_Size,intOutput_Queue_Size)其中,参数COM_Port为整型变量,用于指定串口号,有效范围为1~1000;Device_Name[]为字符型数组,是用ASCⅡ码字符串表示的串口名。例如,以“COM1”来代替端口1,如果输入值为NULL或一个空字符串,则以COM_Port号作为指定端口号。Baud_Rate为长整型变量,用来设置串行口的传输速率,标准的传输速率有110、300、600、1200、2400、4800、9600、19200b/s等;默认值为9600。Parity为整型变量,用来指定奇偶校验模式。0表示无奇偶校验,1表示奇校验,2表示偶校验;Data_Bits为整型变量,用来指定每帧信息中数据位的个数,可选5、6、7、8;Stop_Bits为整型变量,用来指定每帧信息中停止位的个数,可选1、1.5或2;Input_Queue_Size为整型变量,用来指定串行口输入队列的大小;Output_Queue_Size为整型变量,用来指定串行口输出队列的大小。3)CloseCom函数功能:用来关闭一个串行口。该函数原型为:intCloseCom(intCOM_Port)其中,参数COM_Port用于指定端口号。2.串行口输入/输出函数1)ComRd函数功能:用来从指定端口读取字符并存放到缓冲区中。该函数原型为:intComRd(intCOM_Port,charBuffer[],intCount)其中,参数COM_Port用于指定端口号;Buffer[]为字符型数组,用来存放读取出的字符串;Count为整型,表示要读取的字符串的长度。2)ComRdByte函数2功能:用来从指定串行口的输出队列读取一个字节的信息。该函数原型为:intComRdByte(intCOM_Port)其中,参数COM_Port用于指定端口号。3)ComWrt函数功能:用来向指定串行口的输出队列写入若干字节的信息。该函数原型为:intComWrt(intCOM_Port,charBuffer[],intCount)其中,参数Buffer[]为字符型数组,用来存放要发送的字符串;Count为整型,表示要发送的字符串的长度。4)ComWrtByte函数功能:用来向指定串行口的输出队列写一个字节的信息。该函数原型为:intComWrtByte(intCOM_Port,intByte)其中,参数Byte为整型,表示要发送的低位字节。5)ComToFile函数功能:用来从串口的输入队列读取数据,并将数据写入一个文件中,返回成功写入文件的字节数。该函数原型为:intComToFile(intCOM_Port,intFile_Handle,intCount,intTermination_Byte)其中,参数File_Handle表示从Open_File得到的文件句柄;Count表示写入文件终止的条件之一,写入count个字节数;Termination_Byte表示写入文件终止的条件之一,遇到终止字节。6)ComFromFile函数功能:读取指定文件并写入COM端口的输出队列。该函数原型为:intComFromFile(intCOM_Port,intFile_Handle,intCount,intTermination_Byte)其中,参数File_Handle表示文件句柄。Count表示从指定端口所能读取的最大字节数;Termination_Byte表示写入文件终止的条件之一,遇到终止字节。7)ComRdTerm函数功能:用来从串行口读取数据,直到遇到终止条件为止。该函数原型为:intComRdTerm(intCOM_Port,charBuffer[],intCount,intTermination_Byte)参数说明同上。3.串行口控制函数1)FlushInQ函数功能:用来清空指定串行口的输入队列字符。该函数原型为:intFlushInQ(intCOM_Port)2)FlushOutQ函数功能:用来清空指定串行口的输出队列。该函数原型为:intFlushOutQ(intCOMPort)3)SetComTime函数功能:用来设置串行口输入/输出操作的时间限制,超过设定时间,提示出错信息,终3止当前操作。该函数原型为:intSetComTime(intCOM_Port,doubleTimeout_Seconds)其中,参数timeoutSeconds表示限制时间。4)SetXMode函数功能:表示是否允许软件握手。默认情况下为禁止软件握手。如果串口没有打开或者输入无效参数,则会返回一个错误。函数原型为:intSetXMode(intCOM_Port,intMode);其中,参数Mode的默认值为0,禁止软件握手;1表示允许软件握手。5)SetCTSMode函数功能:表示是否允许硬件握手。默认情况为禁止硬件握手。函数原型为:intSetCTSMode(intCOM_Port,intHardware_Handshanking)其中,参数Hardware_Handshanking为硬件握手模式。有三种模式,0为禁止硬件握手,忽略CTS信号,RTS和DTR信号高电平有效;2为允许硬件握手,CTS控制发送,RTS为握手信号,DTR为高电平。6)ComBreak函数功能:生成中断信号。函数原型为:intComBreak(intCOM_Port,intBreak_Time_msec);其中,参数Break_Time_msec表示中断信号持续的时间。7)ComSetEscape函数功能:设置串口扩展命令。函数原型为:intComSetEscape(intCOM_Port,intEscape_Code);其中,参数Escape_Code表示扩展函数代码。4.串行口状态查询函数1)GetInQLen函数:功能:用来获取指定串行口输入队列内的字符数。该函数原型为:intGetInQLen(intCOM_Port)2)GetOutQLen函数功能:用来获取指定串行口输出队列内的字符数。该函数原型为:intGetOutQLen(intCOM_Port)3)GetComStat函数功能:用来返回串行口的状态信息,如果小于0,则表明串行口工作不正常。该函数原型为:intGetComStat(intCOM_Port)4)ReturnRS232Err函数功能:返回错误代码。该函数原型为:intReturnRS232Err(intCOM_Port)5.串行口事件处理函数InstallComCallback函数:4功能:用来为指定串行口设置一个回调函数。该函数原型为:intInstallComCallback(intCOM_Port,intEvent_Mask,intNotify_Count,intEvent_Character,ComCallbackPtrcallback_Function,void*callback_Data)其中,参数Event_Mask为整型,设置回调函数可以响应的事件,如果是0,则不触发回调函数;Notify_Count为整型,指定触发回调函数接收数据的输入缓冲区的最小字节数,可以是0到整个输入队列的大小;Event_Character为整型,指定触发LWRS_RXFLAG事件的字节值,可以是0~255;Callback_Function为ComCallbackPtr类型,定义回调函数;*callback_Data为空类型,表示回调数据。6.调制解调文件传输函数1)XmodemReceive函数功能:表示接收端口的数据包,并将数据写入文件中。函数原型为:intXmodemReceive(intCOM_Port,charFile_Name[]);2)XmodemSend函数功能:表示读取文件数据,并将数据以包的形式发送到端口缓冲区。函数原型为:intXmodemSend(intCOM_Port,charFile_Name[]);函数以二进制形式发送数据文件,对于文件中回车和换行符不作特殊处理。在数据包很大且波特率较低的情况下,应设置一个较大的超时时限start_Delay.3)GetComConnectionState函数功能:返回指定端口的连接状态。函数原型为:intGetComConnectionState(intCOM_Port)
本文标题:LabWindowsCVI串口通信函数
链接地址:https://www.777doc.com/doc-7416946 .html