Pyserial 缓冲区的填充速度比我读的快
问题描述
我正在以 921600 的波特率通过串行从微控制器读取数据.我正在读取大量 ASCII csv 数据,由于它来得如此之快,因此缓冲区已被填满,其余的数据也已填满在我阅读之前迷路了.我知道我可以手动编辑 serialwin32 的 pyserial 源代码以增加缓冲区大小,但我想知道是否有其他方法?
I am reading data from a microcontroller via serial, at a baudrate of 921600. I'm reading a large amount of ASCII csv data, and since it comes in so fast, the buffer get's filled and all the rest of the data gets lost before I can read it. I know I could manually edit the pyserial source code for serialwin32 to increase the buffer size, but I was wondering if there is another way around it?
我只能估计我将收到的数据量,但大约是 200kB 的数据量.
I can only estimate the amount of data I will receive, but it is somewhere around 200kB of data.
解决方案
有一个接收缓冲区"滑块,可从设备管理器中的 com 端口属性页面访问.它可以通过端口设置"选项卡上的高级"按钮找到.
There's a "Receive Buffer" slider that's accessible from the com port's Properties Page in Device Manager. It is found by following the Advanced button on the "Port Settings" tab.
更多信息:
http://support.microsoft.com/kb/131016 在标题 接收缓冲区
http://tldp.org/HOWTO/Serial-HOWTO-4.html 在标题中断
试着把它降低一两个档次.
Try knocking it down a notch or two.
相关文章