使用python3

时间:2019-04-16 09:25:04

标签: python-3.x casting arduino pyserial

我的树莓派 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 ,但我只会收到错误消息

1 个答案:

答案 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)
相关问题