Estoy tratando de enviar y recibir datos en serie de un atmega328 (usando la biblioteca arduino) sobre un chip FTDI (FT232R). Puedo enviar datos a mi PC y verlos en un monitor en serie. Puedo enviar datos desde mi pc y flashear un LED. Pero, si intento enviar datos desde mi PC y devolver un "datos recibidos x ..." en serie, se crea un bucle de ecos.
El siguiente código proviene del sitio de arduino
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false;
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\n') {
stringComplete = true;
}
}
}
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
Serial.println(inputString);
// clear the string:
inputString = "";
stringComplete = false;
}
}
Cuando envío "hola" vuelvo:
el
l
o
el
ll
o
el
ll
o
el
ll
o
el
ll
o
el
ll
o
el
l
o
...
Y continúa para siempre.
En caso de que sea un problema de hardware, aquí está mi esquema.
¿Qué está causando el bucle y cómo puedo solucionarlo?