我想使用Raspberry Pi一侧的pyserial库将数据从我的Raspberry Pi发送到Arduino。我刚用USB连接两台设备。首先,我将程序上传到Arduino,检查是否有可用的串行数据然后我将读取它并使用if else语句比较接收的数据。如果我在Python程序中每隔5秒设置写入串口之间的延迟,它就能正常工作,但是如果我将延迟设置为1秒,它会随机读取它。我现在只使用Windows来测试它,然后再在Raspberry Pi上运行它。有什么办法可以让你更快地发送数据而不是增加5秒的延迟?下面是我写的示例代码。
的Python
import serial
import time
port=serial.Serial('COM8',9600)
time.sleep(5)
try:
while True:
port.write(b'Hi\n')
time.sleep(5)
except:
port.close()
Arduino的
String dataIn;
int led = 13;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.flush();
}
void loop()
{
if (Serial.available())
{
dataIn = Serial.readStringUntil("\n");
if (dataIn == "Hi\n")
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Serial.flush();
dataIn = "";
}
}