关注:1194 2014-01-19 15:53

当使用LabVIEW从串口读取数据的时候,会连续不断地查询串口直到串口接收到数据为止,这增加了处理器和资源的占用,导致程序中的其他循环不能流畅地运行,应该如何防止LabVIEW连续不断地查询串口?

已解决 悬赏分:0 - 解决时间 2024-04-27 10:55
  支持(0)  |   反对(0)   |  我来评论 2014-01-11 12:40
  

这个问题可以通过使用VISA事件编程来解决。通过使用 VISA Enable Event 这个VI,当串口接收到字符串的时候,VISA会产生一个事件。在while循环中,我们可以在VISA Read函数前面放置一个VISA Wait on Event 函数。 这样,只有当串口接收到一个字符的时候VISA Read 函数才会得到执行。直到数据到达串口的时候,调用VISA Wait on Event 函数的现成会一直被阻塞着。因此,VISA Read 函数只有在端口上有数据的时候才会被执行。通过指定待读取的字节数为1,我们可以确保只有在数据可用的时候才查询串口。注意在程序停止前需要执行一个Disable VISA Events 函数。