Serial port 使arduino仅在发出信号时写入(串行)
我试图用USB串行在树莓Pi和Arduino之间通信,但我只希望Arduino在RPI发送信号时写入 我的arduino代码如下:Serial port 使arduino仅在发出信号时写入(串行),serial-port,arduino,raspberry-pi,Serial Port,Arduino,Raspberry Pi,我试图用USB串行在树莓Pi和Arduino之间通信,但我只希望Arduino在RPI发送信号时写入 我的arduino代码如下: int sensorPin = A0; int sensorValue = 0; void setup(){ Serial.begin(9600); } void loop(){ sensorValue = analogRead(sensorPin); if (Serial.available() > 0) { Serial.rea
int sensorPin = A0;
int sensorValue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
sensorValue = analogRead(sensorPin);
if (Serial.available() > 0) {
Serial.read();
Serial.println(sensorValue,DEC);
Serial.flush();
}
}
一旦我从RPI进行了一次呼叫:
serial.write('hey')
阿杜伊诺反复写道。我原以为Serial.available大部分时间都会返回0,因为读操作会清除缓冲区,但它似乎永远不会被清除。我原以为flush()可以做到,但实际上没有任何效果。真奇怪
Serial.read()
注意:请记住,Serial.read()
一次只能读取一个字节,这可能是您的问题,因为您正在从Raspberry Pi发送'hey'
,这将需要3次循环才能完全清空缓冲区
如果不是这个问题,您可以尝试在每次有东西到达时调用该函数
您的代码如下所示:
int sensorPin = A0;
int sensorValue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
//Any other logic here
}
void serialEvent() {
sensorValue = analogRead(sensorPin);
Serial.read();
Serial.println(sensorValue,DEC);
}
通过使用serialEvent()
事件,您的循环看起来更干净。那总是很好。那很奇怪Serial.read()
注意:请记住,Serial.read()
一次只能读取一个字节,这可能是您的问题,因为您正在从Raspberry Pi发送'hey'
,这将需要3次循环才能完全清空缓冲区
如果不是这个问题,您可以尝试在每次有东西到达时调用该函数
您的代码如下所示:
int sensorPin = A0;
int sensorValue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
//Any other logic here
}
void serialEvent() {
sensorValue = analogRead(sensorPin);
Serial.read();
Serial.println(sensorValue,DEC);
}
通过使用serialEvent()
事件,您的循环看起来更干净。那总是很好。那很奇怪Serial.read()
注意:请记住,Serial.read()
一次只能读取一个字节,这可能是您的问题,因为您正在从Raspberry Pi发送'hey'
,这将需要3次循环才能完全清空缓冲区
如果不是这个问题,您可以尝试在每次有东西到达时调用该函数
您的代码如下所示:
int sensorPin = A0;
int sensorValue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
//Any other logic here
}
void serialEvent() {
sensorValue = analogRead(sensorPin);
Serial.read();
Serial.println(sensorValue,DEC);
}
通过使用serialEvent()
事件,您的循环看起来更干净。那总是很好。那很奇怪Serial.read()
注意:请记住,Serial.read()
一次只能读取一个字节,这可能是您的问题,因为您正在从Raspberry Pi发送'hey'
,这将需要3次循环才能完全清空缓冲区
如果不是这个问题,您可以尝试在每次有东西到达时调用该函数
您的代码如下所示:
int sensorPin = A0;
int sensorValue = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
//Any other logic here
}
void serialEvent() {
sensorValue = analogRead(sensorPin);
Serial.read();
Serial.println(sensorValue,DEC);
}
通过使用serialEvent()
事件,您的循环看起来更干净。那总是很好。离题。这看起来很有趣,你最终想做什么arduino爱好者,离题。这看起来很有趣,你最终想做什么arduino爱好者,离题。这看起来很有趣,你最终想做什么arduino爱好者,离题。这看起来很有趣,你最终想做什么arduino爱好者。是的,每一条RPI信息都会发送3条信息。谢谢是的,它每发送一条RPI消息就发送3条消息。谢谢是的,它每发送一条RPI消息就发送3条消息。谢谢是的,它每发送一条RPI消息就发送3条消息。谢谢