[Solucionado] Problema comunicación serie

Hola tengo un problema con el puerto serie. Guardo los datos recibidos en un string pero al mostrar los datos del string, el length nos indica que ese string tiene 2 caracteres mas. Supongo que esos 2 caracteres corresponden a \n y eso lo tengo solucionado con el while( ch != '\n').

//---------------------------------------
//  RECIBIR DATOS
//---------------------------------------
//Esta funcion nos entrega el valor en float del termometro solicitado.
void RecibirDatos (){
  
int numChar = 0; //Numero ASCII del caracter.

while (Serial.available()>0){ 
if (numChar!=13 && numChar!=10 && numChar!=32){
  char ch = ' '; //Variable donde se guarda el char que se recibe por serial.
  String mensaje ="" ; //Variable para guardar el texto pasado por serial.
  
  
  while( ch != '\n'){ //leemos hasta el retorno de carro o enter.
    ch = Serial.read(); //Lee un caracter.
    Serial.println(ch); //Imprime el caracter "ch" recivido por serial. 
    mensaje = mensaje + ch ; //lo anadimos a la variable mensaje.
    delay(25); //Esperamos 25ms para evitar colixiones de datos.
  }//Fin while
  
 
  if (mensaje != ""){
    Serial.println(mensaje);
    Serial.println(mensaje.length());
    mensaje = "" ; //Borramos el string
  }//Fin if  
  
}//Fin if
}//Fin del while 
}//Fin del void

Un saludo y gracias por adelantado.

Los dos caracteres extra suelen ser LF (Line Feed) y CR (carriagereturn).
En tu caso '\r' y como bien has puesto '\n'

El tema es que tu rutina almacena en mensaje ambos caracteres ya que una vez que detecta '\n' sale del while.

Hola nuevamente, muchas gracias por tu respuesta. Para solucionar el problema primero intente un DO WHILE pero no me funciono, al final puse un if ((ch != '\n') and (ch != '\r')) como se puede ver en el código que viene a continuación para que los caracteres especiales no se añadan al string.

   while ( ch != '\n'){ //leemos hasta el retorno de carro o enter.
    ch = Serial.read(); //Lee un caracter.
    Serial.println(ch); //Imprime el caracter "ch" recivido por serial. 

    if ((ch != '\n') and (ch != '\r')){
      mensaje = mensaje + ch ; //lo anadimos a la variable mensaje.
    } 
    
    delay(25); //Esperamos 25ms para evitar colixiones de datos.
  }//Fin while