Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取串行端口上是否有任何活动?_Python_Python 3.x_Serial Port_Arduino Uno - Fatal编程技术网

Python 如何读取串行端口上是否有任何活动?

Python 如何读取串行端口上是否有任何活动?,python,python-3.x,serial-port,arduino-uno,Python,Python 3.x,Serial Port,Arduino Uno,我有一个PIR传感器和一个连接到USB的控制器,如果有任何动作,我可以使用serial.readline()在终端中读取控制器的输出 但我真正想做的只是检查端口上是否有任何活动(意味着检测到运动) 忧郁的 if(serial.readline() == true) //do something 或者可能: if(serial.readline() != null) //do something 有人能帮我解决这个问题吗,或者至少给我指出正确的方向吗?根据您的用例,可以选择通过

我有一个PIR传感器和一个连接到USB的控制器,如果有任何动作,我可以使用
serial.readline()
在终端中读取控制器的输出

但我真正想做的只是检查端口上是否有任何活动(意味着检测到运动)

忧郁的

if(serial.readline() == true)
    //do something
或者可能:

if(serial.readline() != null)
    //do something

有人能帮我解决这个问题吗,或者至少给我指出正确的方向吗?

根据您的用例,可以选择通过创建超时为0的连接来执行非阻塞读取(请参阅)

这样,您将拥有非阻塞
读取

这就是说,通过这样做,您可能会定期汇集串行端口以接收数据。根据应用程序的不同,这可能是可接受的,也可能是不可接受的


根据您的操作系统,使用非阻塞串行连接,您可能会使用或检查数据可用性。

谢谢您的回复。我一定会留意的
my_serial = serial.Serial(..., timeout = 0)