Python 2.7 树莓阅读Arduino通过串行从Python冻结
我已经建立了一个连接到Arduino的体重秤,它正在将测量的体重发布到USB串行数据中。从我的笔记本电脑通过Arduino IDE连接时,串行监视器很好地显示到达的数据。 当使用下面的Python代码读取序列号时,它在笔记本电脑Linux Mint、Python 2.7.6上工作,但在运行Raspbian、Python 2.7.3的Raspberry RPI B+上,它在打印几行后冻结,在冻结之前打印的行数在7-70之间变化Python 2.7 树莓阅读Arduino通过串行从Python冻结,python-2.7,arduino,raspberry-pi,Python 2.7,Arduino,Raspberry Pi,我已经建立了一个连接到Arduino的体重秤,它正在将测量的体重发布到USB串行数据中。从我的笔记本电脑通过Arduino IDE连接时,串行监视器很好地显示到达的数据。 当使用下面的Python代码读取序列号时,它在笔记本电脑Linux Mint、Python 2.7.6上工作,但在运行Raspbian、Python 2.7.3的Raspberry RPI B+上,它在打印几行后冻结,在冻结之前打印的行数在7-70之间变化 import serial, time ser = serial.Se
import serial, time
ser = serial.Serial('/dev/ttyUSB1', 9600, timeout=5)
time.sleep(2) # wait for Arduino
num = 0;
while True:
line = ser.readline()
num = num+1
print num
print line
知道是什么导致覆盆子冻结吗?Arduino总是发送换行符吗?是的,它每200毫秒发送一次下面的序列号。println;Serial.printanalogValue:|;序列平均值;连续打印|;Serial.print load:|;串行。打印加载,5;连续打印|;尝试放置Serial.println;在结尾而不是开头。谢谢,我试着把Serial.println移到结尾而不是开头。它似乎起到了一定的作用,因为现在它有时会在死之前收到140条消息,但其他时候它仍然在20-30条消息时死去。ser.readline正在等待python代码中的换行符,因此如果将arduino代码中的Serial.println移到末尾对某些情况有所帮助,那么它看起来像是python端的超时问题。您可以尝试增加超时时间或以某种方式更动态地阅读。