为什么串口的visa读取会在指定数目的比特被收完之前结束?



主要软件: LabVIEW Development Systems>>LabVIEW Full Development System
主要软件版本: 6.0
主要软件修正版本: N/A
次要软件: N/A

问题: VISA读取在它收到一个停止符之后,即使它没有收完指定的字节,也会返回读到的内容。停止符默认是 行满(linefeed),0x0A 或是 \n 。但是它也可以通过使用visa configure serial port.vi被修改。不幸的是,我的应用程序需要从串口阅读所有256个ASCII码,其中包括0x0A 或 \n 字符。我如何才能关掉这个功能?

解答: 最简单的方法是,给visa资源添加一个属性节点。并且将Termination Character Enable 的属性值设为FalseSerial End Mode for Reads 的属性设为None. 请遵循下列步骤:
  1. 在你的程序框图上创建一个属性节点。
  2. 将你的VISA 资源连接到属性节点的引用输入端。
  3. 右键点击属性节点的 Property ,并且在快捷菜单中选择Change All to Write。另外,使用你定位工具将属性节点下拉拓展,以显示2个属性。
  4. 使用操作工具,点击第一个属性,选择 Message Based Settings » Termination Character Enable。右键点击这个属性,选择Create » ConstantFalse 作为输入值。
  5. 点击第二个属性,选择 Serial Settings » Serial End Mode for Reads. 右键点击这个属性,选择Create » Constant 选择None作为输入值。
请确保你在调用 VISA Configure Serial Port.vi之后插入这个属性节点。否则,这个属性会被重新设为   True.

请查看下列labviewvi,以更好的了解属性节点的使用。



相关链接: Developer Zone Tutorial: Serial Communication Starting Point
Product Manuals: NI-VISA User Manual (September 2001)
Product Manuals: NI-VISA Programmer Reference Manual (March 2003)

附件:


ATT5IMI8.vi - ATT5IMI8.vi


报告日期: 10/11/2000
最近更新: 02/13/2014
文档编号: 22ADT2UC