我想通过串口与手机通信。向手机写入一些命令后,我使用了ser.read(ser.inWaiting())
得到它的返回值,但我总是得到总数1020 bytes
字符,实际上,期望的回报应该已经结束50KB
.
我尝试过设置ser.read(50000)
,但口译员会坚持下去。
如何扩展输入缓冲区以立即获取所有返回?
如果您在 Windows 平台上运行代码,则只需在代码中添加一行即可。
from serial import Serial
ser = Serial(port='COM1', baudrate=115200, timeout=1, writeTimeout=1)
ser.set_buffer_size(rx_size = 12800, tx_size = 12800)
其中 12800 是我选择的任意数字。您可以将接收(rx)和发送(tx)缓冲区设置为2147483647(等于2^31 - 1)
这将允许您扩展输入缓冲区以立即获取所有返回。
请注意,这仅适用于某些驱动程序,因为这是建议。驱动程序可能不会接受您的建议,并会坚持使用其原始缓冲区大小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)