用Python读取串口。缓冲区是如何工作的?

2 投票
1 回答
5002 浏览
提问于 2025-04-16 13:26

我想了解一下串口(com port)上的缓冲区是怎么工作的。下面的代码是我读取串口的一部分。我在想,如果我执行了 serial_connection.close()serial_connection.open(),会不会丢失任何数据,还是说数据会保留在缓冲区里?你可能会问我为什么要关闭再打开串口……原因是这是一个虚拟串口,不知道为什么,当我连接它太长时间后,数据就停止传输了……

import serial

serial_connection = serial.Serial(
        port = self.SERIAL_PORT,
        baudrate = self.BAUD_RATE,
        timeout = 10
        )

while true:

    serial_connection.close()
    serial_connection.open()
    line = serial_connection.readline()
    print line

1 个回答

4

PySerial有一个单独的线程在那儿监听数据,这样可以确保不会丢失任何信息。不过,操作系统本身并不会存储数据。在你关闭端口和重新打开端口的那段短时间内,有可能会丢失一些数据。

撰写回答