收藏 分享(赏)

在LabVIEW中使用串口.doc

上传人:hskm5268 文档编号:7133466 上传时间:2019-05-06 格式:DOC 页数:8 大小:445.50KB
下载 相关 举报
在LabVIEW中使用串口.doc_第1页
第1页 / 共8页
在LabVIEW中使用串口.doc_第2页
第2页 / 共8页
在LabVIEW中使用串口.doc_第3页
第3页 / 共8页
在LabVIEW中使用串口.doc_第4页
第4页 / 共8页
在LabVIEW中使用串口.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、第一部分使用 LabVIEW 系统 VI一、串口 VI 介绍LabVIEW 的串口通讯 VI 位于 Instrument I/O Platte 的 Serial 中,包括:VI 名称 VI 功能VISA Configure Serial Port 初始化 VISA resource name 指定的串口通讯参数VISA Write 将输出缓冲区中的数据发送到 VISA resource name 指定的串口VISA Read 将 VISA resource name 指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中VISA Serial Break 向 VISA resource

2、 name 指定的串口发送一个暂停信号VISA Bytes at Serial Port 查询 VISA resource name 指定的串口接收缓冲区中的数据字节数VISA Close 结束与 VISA resource name 指定的串口资源之间的会话VISA Set I/O Buffer Size 设置 VISA resource name 指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer 清空 VISA resource name 指定的串口的输入输出缓冲区二、使用说明在 LabVIEW 环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。图

3、1、串口操作数据流图首先需要调用 VISA Configure Serial Port 完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。图 2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用 VISA Write,接收数据使用 VISA Read。在接收数据之前需要使用 VISA Bytes at Serial Port 查询当前串口接收缓冲区中的数据字节数,如果 VISA Read 要读取的字节数大于缓冲区中的数据字节数,VISA Read 操作将一直等待,直至 Timeout 或者缓冲区中的数据字节数达到要求的字节数。当然也可以分

4、批读取接收缓冲区或者只从中读取一定字节的数据。图 3、从串口发送数据 图 4、从串口接收数据在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用 VISA Set I/O Buffer Size;而使用 VISA Flush I/O Buffer 则可以清空接收与发送缓冲区。在串口使用结束后,使用 VISA Close 结束与 VISA resource name 指定的串口之间的会话。图 5、设置缓冲区大小 图 6、 清空缓冲区 图 7、结束会话/线程具体的例子可以参考:examplesinstrsmplserl.llb。第二部分使用 MSCOMM 控件 在 LabVIEW 中

5、使用 MSCOMM 控件,与在 VC、VB 中使用一样。同样可以使用中断方式进行接收。图 8、使用控件的串口收发程序图 9、程序数据流图首先通过 LabVIEW 的工具菜单“Tools Advanced Import ActiveX Controls”将 Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到 LabVIEW 环境中,存放在缺省路径即可,这样在 User Controls Palette 里面可以找到这个控件。图 10、添加 ActiveX 控件菜单图 11、选择添加用户控件图 12、用户控件将串口控件

6、放置在 Front Panel 上,在框图程序中用控件属性对其进行编程,实现所需要的功能。注意:一个串口资源要有一个 MSCOMM 控件与之相对应。第三部分 注意事项 一、串口通讯的波特率设置要精确,比如要求 9600 的波特率,则晶振应选择 11.0593MHz或其倍数。二、由于通常情况下 LabVIEW 串口 VI 接收或发送的都是字符串(Normal) ,所以如果需要发送或接收十六进制数值(Hex) ,请在发送或接收之前进行必要的转换。2.1、数值型数据的处理方法:1. 如果这些数据是静态的,也就说在程序设计阶段要传输的数据就已经确定了,在这种情况下,首先设置 VISA Write 的

7、write buffer 的显示属性为 Hex Display,然后直接输入要发送的 16 进制字符串就可以了。串口设备的控制命令通常是由一个或多个 16 进制字符组成的,当我们需要对其进行控制时经常会采用这种方法发送控制命令。 2. 数据是动态的;即要传输的数值型数据是动态产生和变化的,在发送之前首先要将其转换成对应的 16 进制字符串,才能赋给 VISA Write 发送。将这些数据构成一个数组,用 Byte Array To String 进行转换,转换的结果就是对应数组数值的字符串,可以提交 VISA Write 发送。或者使用 Type Cast 也可以实现同样的功能。 图 13、串

8、口数据转换界面图 14、 串口数据转换数据流图图 15、操作界面图 16、单片机 C 程序2.2、字符串型数据的处理方法: 我们在处理过程当中,传输的数据可能具有一定格式或协议,比如一个完整的数据帧包括起始段、数据段、校验段等等,而每一段往往又有几个部分组成,这几个部分的类型和长度可能又不尽相同,可能是数值型的,可能是字符型的,也可能是布尔型的,单字节或者是多字节。此时我们往往都采用统一的字符形式来处理这些数据,因此有时候我们说,字符是 LabVIEW 里最方便的数据类型。经过打包的字符数据要经过串口发送需要进行必要的转换,否则传输将出错。比如我们打包过后需要发送的的字符串为:34 12 56 78 94(空格为了区分) ,如果直接将其赋给 VISA Write 发送,串口上的数据将是: 33 34 31 32 35 36 37 38 39 34。正确的转换程序如下。图 17、字符型数据处理数据接收:从计算机串口接收到的数据是 16 进制的 ASCII 码,要转换成对应的数值型数据,可以使用 String To Byte Array 或者 Type Cast。三、LabVIEW 串口 VI 不能使用中断方式传输。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报