我想通过串口与手机通信。在向手机写入一些命令后,我使用了 ser.read(ser.inWaiting())
来获取它的返回值,但我总是得到总字符 1020 bytes
,实际上,期望的回报应该结束了 50KB
。
我试图设置 ser.read(50000)
,但解释器会挂起。
我将如何扩展输入缓冲区以一次获得所有回报?
原文由 Ired 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答878 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
如果您在 Windows 平台上运行您的代码,您只需在您的代码中添加一行。
其中 12800 是我选择的任意数字。您可以使接收 (rx) 和传输 (tx) 缓冲区与 2147483647 一样大(等于 2^31 - 1)
这将允许您扩展输入缓冲区以一次获得所有回报。
请注意,这仅适用于某些驱动程序,因为这是一项建议。驱动程序可能不会接受您的建议,并会坚持使用其原始缓冲区大小。