void uart_write(uart_t uart, const uint8_t *data, size_t len) { assert(uart <= UART_NUMOF && uart != 0); while(len--) { while(UxSTA(pic_uart[uart])& _U1STA_UTXBF_MASK) {} UxTXREG(pic_uart[uart]) = *data++; } }
void uart_write(unsigned int uart_num, const void *buffer, uint32_t length) { const uint8_t *data = (const uint8_t *)buffer; const uint8_t *end = data + length; while (data != end) { /* Wait until there is some space in TX FIFO */ while (UxSTA(uart_num) & _U1STA_UTXBF_MASK) ; UxTXREG(uart_num) = *data++; } }