gpt4 book ai didi

Python:使用 readline 时串行超时不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:01 24 4
gpt4 key购买 nike

好吧,我不明白这个。我现在到处都看过了,但我不明白为什么这不起作用:

def main():
time = sys.argv[1]
ser = serial.Serial('/dev/ttyACM0',9600, timeout=1)
paramstr= "A 5 " + time + " 0 0 0"
ser.write(paramstr)
print 'sent'
print 'now listening...'
while True:
dbstr = ser.readline()
fo.write(str(dbstr));
fo.close()
ser.close()
print 'exiting.'

这是我在 python 中的 def main。我正在做的是通过 serial 从我的 Raspberry Pi 向我的 Teensy (Arduino) 发送一个字符串。 Teensy 成功启动了一个程序,并通过 serial 将 1200 行数据发回给树莓派。到目前为止,这是有效的。

while 循环不起作用。数据被写入文件,但循环永远继续下去,尽管传输 (Teensy->RPi) 已经停止。对于这种情况,我实现了 timeout=1,但似乎被忽略了。程序没有跳出while循环。

有人可以帮忙吗?提前致谢!

最佳答案

超时不会影响while循环。它只会影响每次调用 read()readline() 的最长时间。如果你想在不再接收数据时停止循环,那么当你不再接收数据时停止循环。例如。像这样:

while True:
dbstr = ser.readline()
fo.write(str(dbstr));
if not dbstr:
break

关于Python:使用 readline 时串行超时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com