使用Python与VISA进行设备通信,但在C++中却无法实现

2024-04-20 13:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习使用VISA(一套国家仪器模块)与一些NI设备通信。我以前使用Python,但现在我也在学习用C++工作。在

<>我很难在C++中使用VISA模块连接到设备,但是在Python中使用pyVisa模块连接到设备没有问题。在

我附上了两段我正在使用的代码片段。Python代码工作,C++没有,即使它们以相同的方式运行。有人知道我做错了什么吗?在

###################
# PYVISA COMMANDS #
###################

import visa as vi
import time

try:
    # Create the resource manager
    rm = vi.ResourceManager()
    # Connect to resource from USB
    myI = rm.open_resource('ASRL3::INSTR')

    # Setup resource identities for NanoPZ Control Box
    myI.flow_control = 6
    myI.read_termination = 'CR'
    myI.write_termination = 'CR'
    myI.timeout = 3000
    myI.baud_rate = 19200
    myI.stopbits = 1.0

    myI = rm.open_resource('ASRL3::INSTR')
    myI.write('1MX2') # A Very simple command, this works in Python
except:
    "Hello"

# Close Communications
myI.close()

^{pr2}$

Tags: 模块rm代码importvisaopen国家resource
1条回答
网友
1楼 · 发布于 2024-04-20 13:19:23
viSetAttribute(instr_NanoPZ, VI_ATTR_ASRL_STOP_BITS, (ViUInt16) 1.0);

应该是

^{pr2}$

并替换中的6

viSetAttribute(instr_NanoPZ, VI_ATTR_ASRL_FLOW_CNTRL, (ViUInt16) 6); 

使用宏定义所需的流控制类型。在

^{4}$

相关问题 更多 >