我写了一个python脚本来与我的RS232设备通信, 执行后,我能够写入终端,但我没有得到任何输出。如果我打开我的teraterm我能够看到cmnd通过pyserial传递(没有任何输出打印)。 代码: 导入序列
port = "COM1"
baud = 115200
ser = serial.Serial(port, baud, timeout=1)
if ser.isOpen():
print(ser.name + ' is open...')
cmd = input("Enter command or 'exit':")
if cmd == 'exit':
ser.close()
exit()
else:
ser.write(cmd.encode()+b'\r\n')
out = ser.read()
print('Receiving...'+out.decode())
以下是控制台的输出:
COM1 is open...
Enter command or 'exit':ls
Receiving...l
答案 0 :(得分:1)
Receiving...l
这是我对您的计划的期望。 read()
的size参数的默认值为1.这意味着将读取一个字节。
如果另一端回应您的输入'ls'
,则第一个字节将为'l'
。
尝试readline()
方法(不要忘记添加超时,否则它可能会永久阻止)。或者以其他方式处理协议,例如,重复调用read()
。