UART读数据突然数据到来

问题描述

我正在尝试编写一个从Serial读取字符串代码来校准我的项目,但是我缺少数据。我希望程序在数据来自串行端口时触发中断。我写的下面的代码效率不高。在编程过程中我可能会错过一些命令。你能帮助我吗 ?谢谢。

void loop(){
  String msg=Serial.read();
  //Read Sensor
  //Read Sensor
  //Read Sensor
  delay(1000);

}

搜索了许多资料。许多人建议使用轮询。我想使用中断。

解决方法

我不是100%肯定这是正确的,但是来自Serial的数据不是字符串。

您想要的是一个字符数组:

int bufferLength = Serial.available();
char msg[bufferLength];
Serial.readBytes(msg,bufferLength);