我正在通过我的Raspberry Pi(python)从Arduino检索串行输出。
使用的代码:
import serial
ser=serial.Serial('/dev/ttyACM0',115200)
while True:
value = float(ser.readline().strip())
print '{0:0.2f}'.format(value)
问题:我能够打印串行输出,删除少数读数中不需要的字符,之后会出现错误" valueError:无法将字符串转换为float:"
答案 0 :(得分:0)
当我试图快速读取数据时,我遇到了同样的错误。通过打印ASCII数据(转换为float之前)发现它。有时它打印为空行。我只是放慢了循环速度:
while True:
# readline, etc
time.sleep(1)
首先我有:
time.sleep(0.5)
Arduino也每隔0.5秒发送一次数据,所以有时候还没有数据。