我已经看到这个无效的文字错误,这意味着 python 端的 int() 中的数据不是像预期的那样以 10 为基数。我明白了,但在 arduino 方面,我通过串行发送它:
void loop()
{
temperature = bmp085GetTemperature(bmp085ReadUT());
pressure = bmp085GetPressure(bmp085ReadUP());
Serial.println(temperature, DEC); //fails on python side, outputs a 240 usually
delay(50);
Serial.println(pressure, DEC); //pa
delay(1000);
}
在 python 方面,我用这个来选择它:
while True:
if(serialFromArduino.inWaiting() > 0):
input = serialFromArduino.readline().rstrip()
print(input)
inputAsInteger =int(input) #FAILS
print("done")
甚至做了一个 rstrip 以确保我摆脱任何 \t\r\n 等。
所以我很困惑为什么常数
pi@raspberrypi ~/pythoncode $ python serialtest.py
Running
240
Traceback (most recent call last):
File "serialtest.py", line 18, in <module>
inputAsInteger =int(input)
ValueError: invalid literal for int() with base 10: ''
只是不确定我错过了什么?虽然是 python 的新手,但它是可行的,但我正在做的事情非常愚蠢。