Python串行模块打印空行

Python串行模块打印空行,python,linux,arduino,pyserial,Python,Linux,Arduino,Pyserial,我正在尝试编写一个生成随机数的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(

我正在尝试编写一个生成随机数的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'


如何修复此问题?

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

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

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

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

我希望用代码在Arduino草图中设置串行通信。嗨,克劳斯,是的,我添加了
serial.begin(9600)
以取消设置,现在它工作了,我在屏幕上打印了一些随机数。但是,格式有点奇怪,数字显示为
b'8\r\n'
。您知道如何修复此格式以便只显示数字吗?感谢Nitro,它确实修复了此格式,但是,我的数字现在显示为
b'8\r\n'
,您知道如何修复此格式问题吗?\r\n使用Serial.println时会发送此格式。使用Serial.print,它应该可以正常工作。顺便说一句,Serial.print只能在代码延迟1秒的情况下正常工作,否则会导致不同的问题。另外,请将我的回复标记为“有帮助”,这将提高我在stackoverflow上的排名。我确实将您的回复标记为“有帮助”,但当我单击向上箭头时,它会变为1,然后立即变回0,它表示我需要至少拥有15的声誉才能公开计数。