ayuda reciviendo datos con Serial.read()

buenas!!
estoy haciendo un linker para usar arduino con autoit. y tengo un problema :-/
al enviar los datos al arduino(el numero 12 por ejemplo), este al leerlos con Serial.read() me coge solo el 1 y luego tengo que volver a leer el buffer para coger el otro
entonces que funcion habria que usar para que el arduino no cogiera los datos 1 a 1..? osea.. algo en plan leer toda la array de datos del buffer

Cada vez que haces Serial.read(), lees un byte/carácter, si lees el 1 estarás leyendo 0x31, ya que a través del puerto serie se mandan los datos como carácteres ASCII y por tanto se separa el 1 del 2.

Si quieres guardar todo el buffer del puerto serie, usa esta función:

void readString() {
char c;
int buffSize = 0;

Serial.flush();
while (true) {
c=Serial.read();
if ((buffSize == BUFFSIZ-1) || (c == '\r')) { //Leemos hasta detectar el intro
buffer[buffSize] = 0; //En la ultima posicion escribimos un 0 para definir el final de la cadena
return;
}
buffer[buffSize++] = c; //Guardamos el caracter recibido
}
}

Tendrás que crear un vector variable llamado 'buffer' lo suficientemente grande para dar cabida a la posible mayor cadena que llegues a enviar.
Por ejemplo:
char buffer[BUFFSIZ]; //Buffer para BUFFSIZ carácteres

Siendo buffsiz la constante que marca la longitud del vector, que se declara:
#define BUFFSIZ 50 //50 caracteres

Luego tendrás que hacer la tarea de pasar los número de ASCII a decimal y unirlos.

Supongo que tendrás que modificar la condición de paro, ahora está al detectar el intro.

Un saludo

muchas gracias. aunque ya he encontrado una solucion al problema que tenia

No estaría mal que la compartieras, nada mas que por curiosidad

Un saludo y de nada