Skip to main content
1 of 2
Edgar Bonet
  • 45.2k
  • 4
  • 42
  • 81

The Arduino Serial writes one byte at a time. There is a method for writing a buffer of arbitrary length, but all this method does is repeatedly call write(uint8_t) for each byte within the buffer:

size_t Print::write(const uint8_t *buffer, size_t size)
{
  size_t n = 0;
  while (size--) {
    if (write(*buffer++)) n++;
    else break;
  }
  return n;
}

Notice that there is no waiting between the bytes.

If you do not fill the transmit buffer, this should be very fast: all write(uint8_t) does is push the byte into a ring buffer. Unless your timings are at the microseconds level, you can just send the six bytes at once.

I've heard the Serial library processes 16bits (2bytes) at a time?

Very dubious. Do you have a reference for this statement?

Edgar Bonet
  • 45.2k
  • 4
  • 42
  • 81