python 3.x 中的串行 readline 方法

Serial readline method in python 3.x

pySerial write() won't take my string

在那 post 中,编码人员解释了如何使用

ser.write()

方法。

我还在想如何使用

readline()

python3.x 中的方法,因为我想接收一个浮点数,并在我的 python 3.x 代码中进行比较。我知道如何在 python 2.7 中使用 readline()。但是我无法让它在 3.x.

中工作
import serial
import time

ser=serial.Serial('/dev/ttyACM0', 9600)
while 1:
    ans = ser.readline()
    print(ans)
    if ans > 25.50:
        print('its getting hot in  here')
    else:
        print('Everything is fine')

提前致谢

我首先想到的是 ans 将是 readline() 之后的字符串变量。如果不进行某种转换,就无法将字符串与浮点变量进行比较。所以:

if ans > 25.50:

将不起作用,因为 ans 是一个字符串。相反,你需要这样的东西:

float_ans = float(ans)
if float_ans > 25.50:
# etc...