【发布时间】:2013-02-08 11:32:05
【问题描述】:
我正在尝试向设备发送两行 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。
从普通终端程序测试时,两行分开接收没有问题。
【问题讨论】:
-
它还会收到什么? 0x0 + 11 = 0x011。
-
@Ken,请不要误会。我说的是 ASCII 字符而不是 HEX。
-
@bernie,实际上换了一行,但问题是第二行接收为
\n11。新行 char 会搞砸一切。 -
@bernie,如果我只使用
\n,它也会被附加。所以我会收到x0\n11 -
@bernie,事情是
os.linesep工作,但\n搞砸了。这可能是缺少结束字符的迹象吗?
标签: python serial-port pyserial plc