After starting the USART transmission, do we have to wait it to finish? Can we work with other ports while the USART is transmitting? Thanks! :)
no one knows?
No you do not, serial is Asyncrhous.
On the Arduino, receive data is interrupt driven which means it gets put into a buffer and you wont miss characters if you are busy doing something else. The buffer is 128 bytes
Transmit is not interrupt driven. If you send a single byte, it will wait until the previous character is finished then put the character in the transmit register. It will then return. So it is sending the byte while you go do something else.
If you send a string. It has to send each one and does NOT return until the last one has been stored in the register.
Can the serial port be made to use interrupts on transmit? YES However, it is well beyond the ability of most Arduino users.