无法使用pyserial从串行读取任何内容

Not able to read anything from serial using pyserial

我写了一个 python 脚本来与我的 RS232 设备通信, 执行后我可以写入终端但我没有得到任何 output.If 我打开我的 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
Receiving...l

这是我对您的程序的期望。 read() 的大小参数的默认值为 1。这意味着将读取一个字节。

如果另一端回应您的输入 'ls',第一个字节将是 'l'

尝试readline()方法(不要忘记添加超时,否则它可能会永远阻塞)。或者以其他方式处理协议,例如通过重复调用 read()