gpt4 book ai didi

python - 抛出异常 SerialException : device reports readiness to read but returned no data

转载 作者:行者123 更新时间:2023-11-28 19:08:29 27 4
gpt4 key购买 nike

我的树莓派通过串行引脚连接到微 Controller 。我正在尝试从串口读取数据。该脚本读取数据几秒钟。但是,它终止抛出以下异常

serial.serialutil.SerialException:设备报告准备好读取但未返回任何数据(设备已断开连接?)

我使用了以下 python 代码

#!/usr/bin/python
import serial
import time
serialport = serial.Serial("/dev/ttyAMA0", 115200, timeout=.5)

while 1:

response = serialport.readlines(None)
print response
time.sleep(.05)


serialport.close()

最佳答案

如果您认真地尝试传输和打印文件,则应使用以下代码:

for line in serialport.readlines().split('\n'):
print line

-------------------------------------------- --------------

我相信您遇到问题是因为您使用的是 readlines(None) 而不是 readline() Readline() 一次读取一行,并将等待每一行。如果读取整个文件,它将比 readlines 慢。但是 readlines() 需要一次完整的文件。显然不是在等你的串口传输速度。

-------------------------------------------- ---

我的数据记录循环每两分钟接收一行并将其写入文件。它可以像您在 OP 中显示的那样轻松地打印每一行。readine() 等待每一行。我已经测试过,通过更改 Nano 上的程序,它可以在两行之间等待长达 30 分钟,没有任何问题。

import datetime
import serial
ser = serial.Serial("/dev/ttyUSB0",9600) --/dev/ACM0 is fine

while True :
linein = ser.readline()

date = str(datetime.datetime.now().date())
date = date[:10]
time = str(datetime.datetime.now().time())
time = time[:8]

outline = date + tab + time + tab + linein

f = open("/home/pi/python/today.dat","a")
f.write(outline)
f.close()

也许更改为这种方法对您来说会更好。

关于python - 抛出异常 SerialException : device reports readiness to read but returned no data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586883/

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