这可能是因为串口缓冲区的问题导致的。可以添加一个 while 循环,将所有可用的数据读取到一个缓冲区中,然后再逐个处理。以下是一种解决方法示例:
void loop() {
while (Serial.available()) { // 判断串口缓冲区中是否有数据可读
char buffer[32];
Serial.readBytesUntil('\n', buffer, 32); // 读取可用的数据并存储到 buffer 串口缓冲区中
// 处理读取到的数据,例如解析命令并执行相应操作等
// 以下是一个简单的示例
if (strcmp(buffer, "ON") == 0) {
digitalWrite(LED_PIN, HIGH);
} else if (strcmp(buffer, "OFF") == 0) {
digitalWrite(LED_PIN, LOW);
}
}
}