【发布时间】:2018-09-14 14:05:14
【问题描述】:
我目前正在尝试通过带有 pyserial 的 RS232 与电源 (RND 320-KA3005P) 建立通信。 问题是在发送“*DIN?”后,应该返回制造商、型号名称和软件版本,连接似乎什么也没收到。也没有其他命令成功。使用附带的软件,连接后会打开一个LabView程序,并且可以远程控制设备,所以我认为问题出在我的代码中。
代码示例: 连接参数如手册中所述。 作为行尾字符,我尝试了 "\r\n","\r","\n" 这似乎解决了许多其他问题,但在这里没有成功。
import io
import serial
import time
import sys
ser = serial.Serial('COM4',
baudrate = 9600,
bytesize=8,
timeout=1,
stopbits = serial.STOPBITS_ONE,
parity = serial.PARITY_NONE,
xonxoff = False)
eol_char = '\r\n'
sio = io.TextIOWrapper(io.BufferedReader(ser),newline=eol_char)
while True:
sending = input("type:\n")
ser.write((sending + eol_char).encode('utf-8'))
time.sleep(0.2)
ans = sio.read()
sys.stdout.write('received: ' + str(ans))
print('\ntry again\n')
输入命令后显示:
type:
*DIN?
received:
try again
type:
当我在环回上运行脚本时
ser = serial.serial_for_url('loop://',timeout=1)
...
输出:
type:
*DIN?
received: *DIN?
try again
type:
它似乎工作正常。我正在使用 Windows 10 和 USB 到 RS232 转换器。有人知道我在这里缺少什么吗?
提前致谢。
【问题讨论】:
标签: python serial-port pyserial