0

我目前正在尝试与 HP 打印机的旧型号进行交互,它为我提供了两种可能的流量控制方法:根本没有流量控制或基于软件的流量控制 (XON/XOFF)。

我正在使用以下命令初始化 pySerial,并且只使用一个普通的大字符串将我的数据写入端口:

serial = serial.Serial(port = '/dev/ttyUSB3', baudrate = 9600, parity = serial.PARITY_ODD, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS)

这工作正常 - 但有一个问题:似乎完全忽略了流控制并且发送和发送数据 - 这导致设备出现 IO 缓冲区溢出并停止工作。

我的第一个想法是,如果我使用 serial.write('unbelivable long string'),pySerial 可能无法停止传输,所以我将字符串分成块并发送:

data = ['command', 'another command', 'more commands', 'you get the drift...']
for i in data:
    serial.write(i)

嗯......这也不起作用。

所以基本上我可以将波特率更改为较低的值,以便设备比传输速度更快,或者每隔几个块添加类似睡眠的东西......但我想,这不是一个应该做的事情。

所以...任何人来解释我,我做错了什么?;-)

谢谢,

马丁

4

1 回答 1

1

您忘记了 xonxoff 参数。xonxoff=真

http://pyserial.readthedocs.io/en/latest/pyserial_api.html

于 2013-10-11T13:28:42.280 回答