Why a byte takes more than eight bit periods
UART is asynchronous, so each character carries framing. A conventional frame has one start bit, five to nine data bits, optional parity, and one or more stop-bit periods. The familiar 8-N-1 format therefore needs ten bit periods for eight payload bits.
From characters to transfer time
Multiply frame length by the character count, then divide by baud rate. A 256-byte 8-N-1 transfer has 2,560 line bits. At 115,200 baud it takes about 22.22 ms. This excludes buffering, flow control, software latency, and gaps.
Useful throughput
Eight of ten bits in 8-N-1 are payload, making the theoretical efficiency 80%. Headers, escaping, checksums, and idle gaps reduce application throughput further.
Practical decisions
Both endpoints must agree on data width, parity, and stop bits. Include every transmitted protocol byte, budget half-duplex turnaround, and verify oscillator tolerance. Parity detects limited errors but does not replace a packet CRC.
Common troubleshooting check
If measured time is longer, inspect inter-character gaps, FIFO thresholds, DMA configuration, USB-to-UART buffering, and application framing before changing baud rate.