Arduino UART读取数据突然出现数据
我试图写一个代码,从串行读取字符串来校准我的项目,但我丢失了数据。我希望程序在数据来自串行端口时触发中断。我编写的以下代码效率不高。我可能会在编程过程中错过一些命令。你能帮助我吗?谢谢Arduino UART读取数据突然出现数据,arduino,serial-port,interrupt,uart,teensy,Arduino,Serial Port,Interrupt,Uart,Teensy,我试图写一个代码,从串行读取字符串来校准我的项目,但我丢失了数据。我希望程序在数据来自串行端口时触发中断。我编写的以下代码效率不高。我可能会在编程过程中错过一些命令。你能帮助我吗?谢谢 void loop(){ String msg=Serial.read(); //Read Sensor //Read Sensor //Read Sensor delay(1000); } 我查了很多资料。许多人建议使用投票。我想使用中断。我不能100%确定这是正确的,但来自串行的数据不是
void loop(){
String msg=Serial.read();
//Read Sensor
//Read Sensor
//Read Sensor
delay(1000);
}
我查了很多资料。许多人建议使用投票。我想使用中断。我不能100%确定这是正确的,但来自串行的数据不是字符串 您需要的是字符数组:
int bufferLength = Serial.available();
char msg[bufferLength];
Serial.readBytes(msg, bufferLength);
我不是100%确定这是正确的,但来自串行的数据不是字符串 您需要的是字符数组:
int bufferLength = Serial.available();
char msg[bufferLength];
Serial.readBytes(msg, bufferLength);
串行已被中断驱动。它通过中断进入缓冲区。如果缺少字符,则会出现不同的问题。你不需要任何额外的中断。这不好用。最终会出现顺序问题。新手喜欢认为中断可以解决他们糟糕的代码,但这并不是一个好的答案。我建议你在阅读之前检查Serial.available,看看是否有什么东西需要阅读。关于arduino的串行数据,有很多很棒的教程。谷歌“Robin2串行输入基础”,并阅读了他在arduino.ccSerial上的线程,该线程已经是中断驱动的。它通过中断进入缓冲区。如果缺少字符,则会出现不同的问题。你不需要任何额外的中断。这不好用。最终会出现顺序问题。新手喜欢认为中断可以解决他们糟糕的代码,但这并不是一个好的答案。我建议你在阅读之前检查Serial.available,看看是否有什么东西需要阅读。关于arduino的串行数据,有很多很棒的教程。谷歌“Robin2串行输入基础”,并在arduino.cc上阅读他的帖子