Understand UART, UARTE and getting it to work with PPI
UART — Universal asynchronous receiver/transmitter
UARTE — Universal asynchronous receiver/transmitter with EasyDMA
Peripheral drivers – UART
Peripheral drivers – UARTE
UART Driver
UART module
Serial port library
nrfx_err_t nrfx_uart_init(nrfx_uart_t const * p_instance,
nrfx_uart_config_t const * p_config,
nrfx_uart_event_handler_t event_handler)
{
[...]
apply_config(p_instance, p_config);
[...]
}
static void apply_config(nrfx_uart_t const * p_instance,
nrfx_uart_config_t const * p_config)
{
[...]
/* TXD */
nrf_gpio_pin_set(p_config->pseltxd);
nrf_gpio_cfg_output(p_config->pseltxd);
/* RXD */
nrf_gpio_cfg_input(p_config->pselrxd, NRF_GPIO_PIN_NOPULL);
nrf_uart_baudrate_set(p_instance->p_reg, p_config->baudrate);
nrf_uart_configure(p_instance->p_reg, p_config->parity, p_config->hwfc);
nrf_uart_txrx_pins_set(p_instance->p_reg, p_config->pseltxd, p_config->pselrxd);
[...]
}
void nrf_uart_txrx_pins_set(
NRF_UART_Type *p_reg,
uint32_t pseltxd,
uint32_t pselrxd
) {
p_reg->PSELRXD = pselrxd;
p_reg->PSELTXD = pseltxd;
}