Hi,
I am working on a custom board using an nRF52840 and developing with SDK5 (V17.02).
I have a serial communications channel to the device which must use UART as I need to inspect incoming characters on the fly (packet-based comms protocol with start and end sentinels). I have created a packet handler based on the app_uart_fifo module which works well.
I also required to send log output to a second comms channel. For this purpose I have modified nrf_log_backend_uart to use a UARTE rather than UART (as only 1 UART is available on the 52840).
The problem appears when I call various UART/UARTE abstracted functions from nrf_drv_uart via my modified app_uart_fifo and log_backend_uart modules as nrf_drv_uart seems to use the NRF_DRV_UART_USE_UARTE and NRF_DRV_UART_USE_UART switches exclusively.
e.g. from nrf_drv_uart.h
__STATIC_INLINE
void nrf_drv_uart_rx_enable(nrf_drv_uart_t const * p_instance)
{
if (NRF_DRV_UART_USE_UARTE)
{
NRFX_ASSERT(false); // not supported
}
else if (NRF_DRV_UART_USE_UART)
{
nrfx_uart_rx_enable(&p_instance->uart);
}
}
Am I correct in asserting that nrf_drv_uart does not support a project using UART and UARTE and that I need to drop nrf_drv_uart and modify my modules to use nrfx_uart and nrfx_uarte directly instead?
Thanks for any pointers you can give,
Carl Kamper.