Bueno el error es absurdo, no recoge el primer caracter por separado, es que la instruccion putsUSBUSART() añade un espacioal final, yo he utilizado putUSBUSART pasandole como segundo argumento la longitud del string en cuestión. Además hay que limpiar el buffer antes de la siguiente recepción
Es simplemente "pagar la novatada", a lo mejor no me explicado bien pero si alguien se encuentra con el mismo problema seguro que lo entiende enseguida