Yes I clear buffers but slightly differently, I use a 0x00 not a '0'. The '0' is an ASCII zero with the value of 0x30. I have a feeling the unwanted characters are from this. I Normally do not clear the receive buffer, I just read the values I need, save them before processing them and ignore all the others in the buffer.