首页 > 解决方案 > pyserial 一次读取最大 4096 字节,为什么?

问题描述

我在嵌入式系统上有一个 USB 驱动程序,我正在推入数据的 32k 端口。但是,当我使用 pyserial 读取数据时,它会将数据拆分为 4k 个数据包。这是一个usb 2.0,我不想重组数据。

这是我读取数据的方式:

            data = serial.read(1)
            data += serial.read(serial.inWaiting())

            if (len(data) > 32):
                header_size = int(32)
                data_header = data[:header_size]
                #just show the first 32 characters of the data
                print("Packet size = " +  str(len(data)) + "\n")
                print(str(data_header) + "\n")

输出:

Packet size = 4096
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Packet size = 4096
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
Packet size = 4096
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Packet size = 4096
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Packet size = 4096
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Packet size = 4096
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Packet size = 4096
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Packet size = 4096
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

这是驱动程序限制还是 pyserial 正在拆分数据?这个可以配置吗?

谢谢你。

标签: pythonpyserial

解决方案


推荐阅读