可以写入rs232串行仪表,但不能从i读取

2024-10-01 15:41:45 发布

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

我有一个rs232串行设备,我试图读写它使用 pyVISA的python。我可以用“write”来写我的命令,但是 如果我试着“读”或“问”我会得到一个超时错误。在

我可以通过labview或tera term轻松地读写它,但我不能用python读。在

以下是无法运行的python代码:

import visa as v
si = v.SerialInstrument("COM1", delay = 0.1)
si.clear()
si.timeout = 3 
si.baud_rate = 9600 
si.data_bits = 8
si.stop_bits = 1

command = '0'
while command != 'end':
    rorw = raw_input('ask, read, or write? >>')
    command = raw_input('enter command code >>')
    if rorw == 'write':
        write1 = si.write(command)
        print write1
    elif rorw == 'read':
        read1 = si.read()
        print read1
    else:
        ask1 = si.ask(command)
        print ask

Tags: 命令readinputrawrs232commandbitswrite
1条回答
网友
1楼 · 发布于 2024-10-01 15:41:45

我猜你有一个termchar的问题。请尝试将term\u chars设置为\n或\r\n 如果这不工作,串行通信是非常容易与pyserial。 您将需要使用write和readline定义一个与pysvisa的ask等效的自定义方法,可能还需要一个del方法来在发生任何错误时关闭端口 祝你好运

相关问题 更多 >

    热门问题