【发布时间】:2018-10-25 19:31:32
【问题描述】:
我通过串行端口将 arduino uno 连接到树莓派。覆盆子正在接收来自机器人的数据,并通过串行将这些 int 值发送到 arduino。现在的问题是,当我将值打印到串行监视器时,int 值被拆分为多行。
Arduino 代码
int usbRead = 1;
int i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()) {
usbRead = (Serial.read() - '0');
Serial.print("Received:");
Serial.println(usbRead);
}
}
Python 脚本是:
import time
import sys
import signal
import serial
usbCom = serial.Serial('/dev/ttyACM0', 9600)
try:
while True:
a=robot.read("EXTRUDER")
b = int(a)
c=b'%d' %b
print(c)
usbCom.write(c)
time.sleep( 1 )
except KeyboardInterrupt:
print('interrupted')
输出应该是
Received: 56
Received: 56
Received: 56
但我明白了
Received: 5
Received: 6
Received: 5
Received: 6
Received: 5
Received: 6
我只是不明白我做错了什么。
【问题讨论】:
-
这里只是确认一下,当你在 python 中 print(c) 时,它会输出 56 到控制台吗?
-
@BobserLuck 是的,python 的输出是正确的,我得到 56
-
Serial.read()返回串行传入数据的第一个字节。也许this Q&A 有帮助。 -
@shmee 感谢您的帮助,它成功了
标签: python arduino serial-port