【LabVIEW串口编程】03 串口接收

上一篇说到,串口发送一次数据的步骤为:打开串口-->发送数据-->关闭串口。

 

参照串口发送的思路,串口接收一次数据的步骤为:打开串口-->接收数据-->关闭串口。但是这里有一个问题,数据的接收方是不知道数据会在什么时刻发送过来的,这是一个被动接收的过程。对应的有两种情况:

1、接收方提前知道将接收多少数量的数据

对于这种情况,处理起来比较简单,直接在读取函数处进行设置即可。图中所示为接收5字节数据的情况。

注意在进行测试的时候,要提前让数据发送端保持持续发送,然后运行接收程序才可以收到数据。

2、接收方不知道将接收多少数量的数据

既然不知道有多少数据,那创建一个while循环一直读取就好了。但是数据可能是断断续续传来的,而我们在进行读取的时候又必须得告诉读取函数需要接收数据的数量,这时候可以利用属性节点的方式获取串口缓冲区的数据数量,缓冲区有多少数据就读多少。读取函数的输出端显示的是本次读取的结果,所以当断续的数据传来,显示的结果每次都会刷新,而我们想看到的应该是每一次的结果累计,这里可以使用连接字符串的方式将字符串上一次的值与这一次的值累加起来并作为新的值进行显示。

在获取到串口缓冲区的字节数之后,还进行了一个判断,当缓冲区不为空的时候再进行数据读取。

上面这个程序,可以说是一个最简单的串口接收程序了,里面用到的函数组件都是必不可少的。

需要程序请戳下方链接:

https://wwa.lanzoui.com/i9lwzwj

下面都是废话

但是很多时候,用LabVIEW编写串口程序是拿来跟下位机进行交互的,下位机有可能是单片机,也有可能是别的什么设备。在调试这些下位机串口设备的时候,用的最多的调试工具就是串口助手了。作为一个调试工具,XCOM已经做的很好了,没有必要重复造轮子。但从另一个方面来说,XCOM是拥有很多个性化的功能的,比如自动发送、多条发送等,这些功能可以为调试带来极大的便捷。当我们想要更多,当现有的工具无法满足我们的需求,最快的方式就是自己去编写一些调试工具,或者说根据自己当前的需求快速定制化一个调试工具。那么LabVIEW就提供了这样一个平台,借助它可以快速构建出可以使用的程序。当掌握了LabVIEW之后,就可以造出自己想要的轮子,花里胡哨的轮子。当然打造轮子的平台有很多,不一定是LabVIEW,比如说QT也可以编写上位机程序。说到底这些都是工具,当把一个工具用到极致,就可以变成属于自己的独一无二的神器。

刚才提到没有必要重复造轮子,但是造轮子的过程还是有必要学习的,没必要花时间再造一个出来,因为费了时间也不一定造的比已有的好。但是得知道轮子是怎么做出来的,掌握了这些,我们可以扩展造出别的东西。

比如说现在要做一个温度显示的上位机,单片机负责采集温度将数据通过串口发送至电脑。这个时候XCOM是完全可以获取到上传的数据的,但都是一些枯燥的数字,如果将温度随时间的变化通过图像的方式显示出来是不是更好呢,答案是肯定的。这时候XCOM就无法满足了。回到刚才的程序,数据的接收已经没有问题了,将接收的数据输送到波形图表就可以快速实现这个需求。当然数据还需要根据具体情况进行一些处理,如果我们提前已经熟知了LabVIEW内各种数据的转换方式以及波形图的用法,相信这个过程并不会花费很多时间,几分钟就可以搭建出来。

当有一天不需要测温度了,要测一个电机的速度,刚才编写的温度程序也是适用的,数据的获取过程完全不用变,只是数据表达的含义变了,这时候只需要稍微更改数据的解析部分甚至不用改动就可以直接使用。

当然,刚才演示的程序是及其简陋的,可以再花一些时间对其进行优化,这并不是无用功,因为这部分代码是可以复用到很多程序里去的,这会给以后带来极大的便捷。所以当遇到重复编写的代码时,就一次多花些时间做到最优,以后直接CTRL CV就好了。

  • 22
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
LabVIEW是一款强大的图形化编程环境,可以用于各种应用领域。其中,串口通信是一种常见的应用场景。在LabVIEW中,使用VISA功能库可以方便地进行串口通信。 下面我将以一个简单的实例来说明如何在LabVIEW中进行串口接收。 首先,我们需要在Block Diagram中打开一个新的VI(虚拟仪器程序)。然后,从Functions面板中拖拽一个VISA Serial Open函数,一个VISA Read函数和一个VISA Close函数到Block Diagram中。 接下来,我们需要配置串口通信的参数。双击VISA Serial Open函数,选择对应的串口号和波特率,并将返回值连接到VISA Read函数的输入端。 然后,我们需要设置读取数据的方式。双击VISA Read函数,选择读取的数据长度和超时时间,并将返回的数据连接到Block Diagram的其他模块中进行处理。 最后,我们需要关闭串口连接。将VISA Close函数拖拽到VISA Read函数的输出端,将其连接到VISA Serial Open函数的输入端。 至此,我们的串口接收程序已经完成。我们可以点击运行按钮来测试该程序。如果串口通信正常,请确保你的串口设备已经连接并发送数据。 需要注意的是,在执行该程序之前,你需要先安装并配置正确的VISA驱动程序,并将VISA模块添加到LabVIEW环境中。 总结:在LabVIEW中进行串口接收,需要通过VISA功能库调用VISA Serial Open、VISA Read和VISA Close函数来完成。配置正确的串口参数,读取数据进行处理,最后关闭串口连接。希望以上回答能够帮助你理解LabVIEW串口接收的实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值