将串行读取(ASCII)转换为浮点数

时间:2016-10-09 07:48:26

标签: python

我正在通过我的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:"

1 个答案:

答案 0 :(得分:0)

当我试图快速读取数据时,我遇到了同样的错误。通过打印ASCII数据(转换为float之前)发现它。有时它打印为空行。我只是放慢了循环速度:

while True:
   # readline, etc
   time.sleep(1)

首先我有:

time.sleep(0.5)

Arduino也每隔0.5秒发送一次数据,所以有时候还没有数据。