解决方案
错误-1073807298是一个通用的LabVIEW错误,可能由于多种原因出现。以下是可以帮助解决此问题的几个步骤:
- 确保您使用了正确的仪器驱动程序.
- 确保您的代码打开并关闭了所有 VISA 会话引用。有关此代码结构的范例,请在 LabVIEW 的菜单中选择 帮助 >> 查找范例然后开启范例程序 GPIB and VISA Functions.vi 。
- 确保没有LabVIEW之外的其它进程在使用设备的 I/O 端口(如Modbus I/O、I/O 服务器等)。检查所有可能使用设备I/O 端口的应用程序,关闭这些程序,并重启设备。
- 以RS-485的方式通信时,请确保使用了适当的终端电阻。有关更多指南请查看 RS485 终端 手册。
- 一些第三方设备不支持VISA Configure Serial Port VI中的所有串行设置项目,因此使用这个VI函数进行设置时,可能会报错。请尝试使用VISA 属性节点的方式来单独设置受该设备支持的项。
- 要确定您所使用的USB串口适配器不支持哪些设置项,请查阅第三方硬件手册和/或联系设备制造商。
- 如果您使用的是第三方 USB串口适配器并收到此错误,请参考使用第三方USB串口适配器时出现错误 -1073807298进行操作。
如果您是在向设备发送AT命令时遇到此错误,那么问题可能与串口 I/O 缓冲区有关。缓冲区的大小被默认设置为 0。在这种配置下,VISA 会在每次读写访问时强制刷新(Flush)所有 I/O 数据。在执行刷新操作时有可能会发生 I/O 错误,因为设备锁使用的串口驱动程序并不支持缓冲区刷新(Buffer Flush)操作。
您可以将发送缓冲区(Transmit Buffer)的大小设置为一个非零值,例如 1。这样可以阻止 VISA 驱动程序执行缓冲区刷新操作,从而避免出现该 I/O 错误。

在LabVIEW开发环境下,您可以使用VISA设置I/O缓冲区大小函数来实现上面的设定。