我的树莓派和 arduino 之间具有串行连接。我可以将数据从 arduino 发送到 pi ,但是当我尝试将接收的数据转换为 int 或 float 我收到一条错误消息。
假设我尝试将数字 35 发送到 pi ,并尝试在 python 端将其转换,我收到以下消息:
以10为底的int()无效文字:''
,当我尝试将其转换为 float 时,收到以下消息:
无法将字符串转换为浮点数。
我在 raspberry pi 上使用空闲3.5.3 。我尝试了在该论坛中看到的许多内容:例如strip()
,但似乎无济于事。怎么了?
Arduino代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(35);
delay(5000);
}
Python代码:
#!/usr/bin/env python3
import time
import serial
from array import array
import csv
arduino = serial.Serial(
port='/dev/ttyACM0',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
arduino.flushInput()
print("test")
while 1:
incoming = arduino.readline().decode('ascii').strip()
float(incoming)
print(incoming)
我希望强制转换为 int 或 float ,但我只会收到错误消息
答案 0 :(得分:1)
我明白了。
incoming = arduino.readline().decode('ascii')
if not incoming is "":
if int(incoming.strip()) == 1:
data.append(float(arduino.readline().decode('ascii').strip())/100)