how to use libuarte

I want to use the async driver,but did not find the example or explanation.

I have looked for the whole examples with "nrf_libuarte_async.h", found nothing,a little strange,I guess the NRF_LOG should useed this lib,but not check yet.

  • Solved.

    In order to use the Macro NRF_LIBUARTE_ASYNC_DEFINE,you have to confirm:

    1) include all files needed:

    nrfx_ppi.c

    nrfx_timer.c

    nrf_libuarte_drv.c

    nrf_libuarte_async.c

    (there is problem if you try to use RTC timer)

    2)enable these drivers in sdk_config.h;

    This is the main source of error.

    As my case:

    NRF_LIBUARTE_ASYNC_DEFINE(m_libuarte, 0, 1,    NRF_LIBUARTE_PERIPHERAL_NOT_USED, 2,  NRF_SDH_BLE_GATT_MAX_MTU_SIZE * 2, 3); 

    I use UARTE0,TIMER1,TIMER2.

    You should not just enbale NRFX drivers, you have to enable legacy TIMER1 & TIMER2 driver.

    Problems come mainly from here.

    The Macro does not think the TIMERx is enabled if you did not enable legacy drivers,and the tip info provided by NRF_LIBUARTE_ASYNC_DEFINE is meaningless.

    These kind of info should include into the official explaination,I spend many hours to try error.

  • OldXiao said:
    I just delete one of the RTC1_IRQHandler definition?

    No. The error means that there are two RTC1 driver being enabled at the same time. What are the RTC related configs enabled in your sdk_config.h, and what RTC related driver .c files are included in your project?

    Are you using app_timer?

Related