首页 > 解决方案 > Python串行模块打印空行

问题描述

我正在尝试制作一个生成随机数的 Arduino 代码和一个从串行读取这些数字并在命令行中打印它们的 Python 程序。

这是我的 Arduino 代码:

void setup() {
}

void loop() {
    long rand = random(10);
    Serial.println(rand);
    delay(1000);
}

这是我的 Python 代码:

#!/usr/bin/python

import serial

ser = serial.Serial("/dev/ttyACM0",9600, timeout = 1)
if ser.is_open == 0:
    ser.open()
    print('serial was not open, so it is open now')
else:
    print('serial was open this whole time')
while ser.is_open:
    thing = ser.readline()
    print(thing)
    #ser.readline()
ser.close()

一旦 Arduino 开始生成随机数,我运行我的 Python 程序并得到以下输出:

b''
b''
b''
b''
b''
b''
b''
b''

我期待看到随机数而不是b''.

我怎样才能解决这个问题?

标签: pythonlinuxarduinopyserial

解决方案


您尚未在 arduino 代码中初始化串行对象

尝试在您的 Arduino 代码中更改设置函数。

setup()
{
    Serial.begin(9600);
}

下次遇到类似问题时,请尝试模块化检查。首先检查 Arduino 是否正常工作,然后检查整个系统是否正常工作。


推荐阅读