Pyserial 缓冲区的填充速度比我读的快

2022-01-18 00:00:00 python pyserial serial-port

问题描述

我正在以 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.

相关文章