我正在尝试将数据从集成了ble的arduino (来自DFRobot的bluno)发送到raspberry pi 2,它有一个hm10 ble模块连接到它的serial0 gpio14和15个引脚。
我目前正在使用这个草图:
float flow = 500.06;
void setup() {
Serial.begin( 9600 );}
void loop() {
if (Serial.available()>0) {
if (Serial.read() == 'R') {
Serial.print(flow)
Serial.write("\n");
}
}
}我正在使用这条python来读取它:
#! /usr/bin/env python
import serial
from time import sleep
ser = serial.Serial(port='/dev/serial0',parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS,timeout=1)
# Wait to read from Arduino
while 1:
try:
time.sleep(10)
ser.write("R")
myData = ser.readline()
print myData
except KeyboardInterrupt:
exit()这将使raspberry在运行脚本10秒后向arduino发送R。但我每隔十秒就会在树莓终端中看到空行。我猜这是print myData行,它是空白的。
我刚刚尝试通过usb串口连接bluno nano和raspberry pi 2,并运行此代码,rpi收到82,这是R的ascii等价物。我修改了代码并添加了一张图像来显示这些发现。我还是不明白为什么在蓝牙串口的时候我得不到回应?

发布于 2017-06-19 19:29:24
Arduino需要等待Raspberry Pi的信号。
例如通过读取字符'R'。
float flow = 500.06;
void setup() {
Serial.begin( 9600 );
}
void loop() {
if (Serial.available()>0) {
if (Serial.read() == 'R') {
Serial.print(flow);
Serial.write("\n");
}
}
}在从Arduino读取数据之前,Raspberry Pi需要发送字符'R'。
import serial
import time
ser = serial.Serial(port='/dev/serial0',parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS,timeout=1)
# Wait to read from Arduino
while 1:
try:
time.sleep(10)
ser.write("R")
myData = ser.readline()
print myData
except KeyboardInterrupt:
ser.close()
exit()https://stackoverflow.com/questions/44598220
复制相似问题