首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用labview从arduino快速获取缓冲区

利用labview从arduino快速获取缓冲区
EN

Stack Overflow用户
提问于 2017-04-23 22:17:10
回答 1查看 1.5K关注 0票数 1

我正在尝试读取从arduino获得的传感器的值,并使用脉冲传感器和DS18B20 (温度传感器)在labview上显示它。但是,为了从心脏脉冲中获得波形图,我需要while循环(大约50 ms),但是如果它的速度小于1分钟,值就会被混淆(我得到的是温度而不是模拟传感器值,反之亦然),有什么建议来解决这个问题吗?我在一个用逗号分隔的serial.print中获得了值,所以我使用LV上的匹配模式将它们分开。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-24 08:11:54

如果您检查在端口等待的字节数,并且只读取该数量的字节,则可能会收到不完整的消息。在没有看到发送数据的数据和Arduino代码行的例子之前,很难确切地说这是如何出错的,但一般来说,要使这种数据交换正常工作,我建议您:

  • 确保Arduino代码在每一对值之后发送终止字符,例如行提要(0x0A)
  • 当您在LabVIEW中配置串行端口时,将其设置为读取的终止字符并启用它--无论如何,这应该是默认的。然后,在进入循环之前,我将清除读取缓冲区,以删除在LabVIEW代码未运行时在那里积累的任何旧数据。
  • 在循环中,不要检查Bytes at Port,而是将一个大值连接到Serial函数的bytes to read。Serial将从串行缓冲区读取并返回字节,直到并包含终止字符,等待它们在必要时到达(直到为端口配置的超时设置)。这样,您应该始终接收一个完整的字符串。

为了从接收到的字符串中获取数据,我将使用Scan from String函数。对于您的示例来说,似乎适当的扫描字符串类似于%f,%f\n,它指定两个浮点值,以逗号分隔,以换行符结尾。Scan from String有一个错误输出,还允许您连接要读取的每个值的默认值,这样您就可以检测数据是否未被正确接收。

在这里显示LabVIEW代码的最佳方法不是截图,而是在图表上选择它并选择Edit > Create VI Snippet from Selection。这将保存一个PNG映像,该映像中还嵌入了实际的LabVIEW代码。此外,请考虑安排您的方框图,以便数据流从左到右尽可能多,因为这个约定使它更容易阅读。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43577105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档