debes tener en cuenta que cuando lees el caracter por el rs232 lo guardas en una variable y una vez que lo procesas, es decir entras al if, lo debes borrar poniéndole un valor que no estés usando para tus comandos, sino va a entrar al if en cada vuelta que da una vuelta el ciclo do-while