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.
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?