Python串行模块打印空行
我正在尝试编写一个生成随机数的Arduino代码和一个Python程序,该程序从序列号中读取这些数字并在命令行中打印它们 这是我的Arduino代码: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(
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的声誉才能公开计数。