我通过串行端口将一个arduino uno连接到一个raspberry。树莓正在接收来自机器人的数据,并通过串口将这些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
我只是不明白我做错了什么。你知道吗
你可以用串行.parseInt()读取串行监视器发送的数字。parseInt等待发送文本的所有数字字符,因此它会在很短的时间内阻止草图的执行,直到收到所有字符为止。波特率越高,速度越快。如果草图不需要尽可能快地循环,那么可以使用它。parseInt在不是数字的第一个字符(例如换行符)处停止,并将接收到的数字作为long返回。你知道吗
相关问题 更多 >
编程相关推荐