我想从串口发送连续数据。但是在发送第一个数据后,串口没有获取第二个数据。如果我停止并重新启动它,它工作正常。这是我的代码:
String inputString="";
boolean stringComplete=false;
void serialEvent() {
while(Serial.available()) {
char inChar=(char) Serial.read();
inputString+=inChar;
if(inChar=='\n') {
stringComplete=true;
}
}
}
void setup() {
Serial.begin(9600);
inputString.reserve(200);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
serialEvent();
if(stringComplete) {
Serial.println(inputString);
inputString="";
stringComplete=false;
}
if(inputString=="HELLO") {
digitalWrite(12, HIGH);
serialEvent();
} else if(inputString=="WORD") {
digitalWrite(13, HIGH);
serialEvent();
}
}
答案 0 :(得分:0)
您在比较字符串时,inputString设置为空字符串,然后才能使用它。 将字符串比较放在if(stringInput)块中。此外,您还需要在比较中包含换行符。
void loop()
{
serialEvent();
if(stringComplete)
{
Serial.println(inputString);
if(inputString=="HELLO\n")
{
digitalWrite(12,HIGH);
serialEvent();
}
else if(inputString=="WORD\n")
{
digitalWrite(13,HIGH);
serialEvent();
}
inputString="";
stringComplete=false;
}
}