Python 2.7 PySerial读线

Python 2.7 PySerial读线,python-2.7,pyserial,Python 2.7,Pyserial,我通过串行端口(Tx,Rx)将STM处理器与Raspberry Pi连接起来。我有两个线程用于管理串行端口上的数据(发送方、接收方)。我使用while-True循环和PySerial函数(write、readline)。如果STM处理器工作正常,即使数据已损坏,一切正常。当我没有在预期的情况下获取数据时(当我在连接上短路或STM处理器出现故障时),就会出现问题。这是最坏的情况,但我需要预测它,因为软件重启功能。在与线程的连接中,我使用队列,因此我知道数据何时发送到STM处理器,以及何时可以得到答

我通过串行端口(Tx,Rx)将STM处理器与Raspberry Pi连接起来。我有两个线程用于管理串行端口上的数据(发送方、接收方)。我使用while-True循环和PySerial函数(write、readline)。如果STM处理器工作正常,即使数据已损坏,一切正常。当我没有在预期的情况下获取数据时(当我在连接上短路或STM处理器出现故障时),就会出现问题。这是最坏的情况,但我需要预测它,因为软件重启功能。在与线程的连接中,我使用队列,因此我知道数据何时发送到STM处理器,以及何时可以得到答案。所以,如果我没有得到答案,代码就会卡在readline上。是否有可能在RPi层识别出连接、STM处理器有问题?我没有得到任何异常或错误。我需要这样的东西->

#receiver side

while True:

    if everything is ok: 
        serial_port.readilne()
    else:
        restart

提前谢谢。

也许您需要逐字节读取,而不是读取整行,并使用
inWaiting()
?您是否在串行端口初始化时使用超时?您应该能够让readline在一段时间后失败,他们只需重试。