Hi,
Can someone please explain the difference between bm_lpuart_* and nrfx_uarte_* drivers in nRF Connect Bare Metal SDK ?
Hi,
Can someone please explain the difference between bm_lpuart_* and nrfx_uarte_* drivers in nRF Connect Bare Metal SDK ?
Hello,
Hope it's okey I copy and paste the response from our chatbot in this case, which I think summarized better than I could. Let me know if something is unclear and I can look into it.
Kenneth
--
In the Bare Metal option you effectively have two layers of UART-related drivers:
nrfx_uarte_* – low‑level, generic HAL driver
#include <nrfx_uarte.h>) and configure the UARTE registers and events yourself. [nrfx driver]bm_lpuarte_* – higher‑level Bare Metal Low Power UARTE driver
nrf-bm/drivers. [Drivers overview]bm_lpuarte_* API:
bm_lpuarte_init(), bm_lpuarte_uninit()bm_lpuarte_tx(), bm_lpuarte_tx_in_progress(), bm_lpuarte_tx_abort()bm_lpuarte_rx_enable(), bm_lpuarte_rx_buffer_set(), bm_lpuarte_rx_abort() [bm_lpuarte API; LPUARTE driver]How to think about the difference
Use nrfx_uarte_* when you want:
Use bm_lpuarte_* when you want:
Both are in scope for Bare Metal, but bm_lpuarte_* is a Bare Metal helper driver built on top of the underlying nrfx UARTE functionality, while nrfx_uarte_* is the base peripheral driver.
Hello,
Hope it's okey I copy and paste the response from our chatbot in this case, which I think summarized better than I could. Let me know if something is unclear and I can look into it.
Kenneth
--
In the Bare Metal option you effectively have two layers of UART-related drivers:
nrfx_uarte_* – low‑level, generic HAL driver
#include <nrfx_uarte.h>) and configure the UARTE registers and events yourself. [nrfx driver]bm_lpuarte_* – higher‑level Bare Metal Low Power UARTE driver
nrf-bm/drivers. [Drivers overview]bm_lpuarte_* API:
bm_lpuarte_init(), bm_lpuarte_uninit()bm_lpuarte_tx(), bm_lpuarte_tx_in_progress(), bm_lpuarte_tx_abort()bm_lpuarte_rx_enable(), bm_lpuarte_rx_buffer_set(), bm_lpuarte_rx_abort() [bm_lpuarte API; LPUARTE driver]How to think about the difference
Use nrfx_uarte_* when you want:
Use bm_lpuarte_* when you want:
Both are in scope for Bare Metal, but bm_lpuarte_* is a Bare Metal helper driver built on top of the underlying nrfx UARTE functionality, while nrfx_uarte_* is the base peripheral driver.
Thanks a lot. I just tried the chatbot, it looks really good.