Having learned the hard way from several microcontroller projects, if you're going to talk to a microcontroller, packetize your communication protocol. Give yourself a message type field, flags, message id, and packet length, and then read whatever out of that.
then, when you are struggling to debug something, you can easily extend your protocol with in-band debug messages that can be discriminated from normal control traffic.
the overhead is really minimal.