Serial messing up at higher baud rates than 9600?

Hello,

I have been working with Serial communication, and I attempted to increase the baud rate to send data faster, however, I noticed that when I increased the baud rate to above the standard 9600, the serial monitor displayed the wrong thing sometimes, at random intervals, like random spaces, or not finishing a line of printing.

Here is a short video of the Serial at 38400. It does this at lower baud rates as well, until I get to 9600, where the problems seem to stop.

apologies for the bad quality

The code is super long, since I am using IMUs, but the only print statements are printing float values. I can share if necessary.

I can't read what is on your video.

I regularly use my Arduinos to communicate with my PC at 500,000 baud so you must be doing something wrong.

You need to post your complete program - add the .ino file as an attachment if necessary. Better still, write a short program that illustrates the problem.

...R

just to be sure: you set the baudrate at booth sides?

VikramBhat:
It does this at lower baud rates as well, until I get to 9600, where the problems seem to stop.

By default the serial monitor is set to 9600 baud. Any mismatch between that number and the speed the Arduino tries to send the data at causes a mess. So set your serial monitor to the same speed (it's at the right bottom corner).

I could be wrong but I don't believe the Arduino uses any handshaking on its serial communications?

If that is correct then both ends have to be able to receive data at the baudrate chosen. If the receiving end becomes busy performing some task the transmitting end is unaware of this and keeps on pumping out characters. As a result some characters may be lost and not seen by the receiving end.

You should make sure that the end that is losing data is not spending time doing something else.