Python 随pySerial发送的ASCII文本附加在终端设备上

Python 随pySerial发送的ASCII文本附加在终端设备上,python,serial-port,pyserial,plc,Python,Serial Port,Pyserial,Plc,我试图向设备发送两行ASCII文本,但设备将这两行作为附加的一行来读取。这是延迟还是错误的结局?我似乎真的看不出这个问题 import serial ser = serial.Serial('/dev/cu.usbserial-FTVFV0X7', 19200, timeout=10) ser.write("x0") ser.flush() ser.write("11") ser.flush() 终端设备将其作为x011接收,而不是x0和11 当从普通终端程序进行测试时,分别接收两条线路是没有

我试图向设备发送两行ASCII文本,但设备将这两行作为附加的一行来读取。这是延迟还是错误的结局?我似乎真的看不出这个问题

import serial
ser = serial.Serial('/dev/cu.usbserial-FTVFV0X7', 19200, timeout=10)
ser.write("x0")
ser.flush()
ser.write("11")
ser.flush()
终端设备将其作为
x011
接收,而不是
x0
11


当从普通终端程序进行测试时,分别接收两条线路是没有问题的。

许多硬件串行设备使用回车来发出线路或指令结束的信号。在不知道您正在尝试使用什么设备(或它期望的协议)进行通信的情况下,我可能会建议尝试

ser.write("x0\r")
ser.flush()
ser.write("11\r")

如中所述,pySerial不再支持
readline()
的下线参数,因此如果设备正在向您返回回复(并且正在使用
\r
终止的行执行此操作)然后,您应该按照建议执行操作,并使用
io.TextIOWrapper
和适当的超时来解析传入数据。

它还会收到什么?0x0+11=0x011。@肯,请不要弄错。我说的是ASCII字符而不是十六进制。@bernie,实际上做了一个新行,但问题是第二行作为
\n11
接收。新行字符会把一切都搞糟。@bernie,如果我只使用
\n
它也会被追加。。所以我将收到
x0\n11
@bernie,问题是
os.linesep
工作正常,但是
\n
把它搞砸了。这可能是缺少结尾字符的迹象吗?