From EdWiki

Sending and receiving data through the UART

Primitives for sending and receiving data are provided, uart_send() and uart_recv(). These primitives do not check if data can be transmitted or wait for data. If waiting until data is available or can be transmitted is desired, blocking primitives are also available, uart_send_blocking() and uart_recv_blocking().

These primitives only handle one byte at at time, and thus may be unsuited for some applications. You may also consider using UART DMA control.