Hi,
I am trying to integrate an UARTE application code with OpenThread example(thread_mqtt_sn_client_publisher_pca10056) on my nRF52840. My application code uses UARTE0 to communicate with other system.
Here are some of the problems I am encountering:
- If I use , I will get an error saying "multiple definition of `UARTE0_UART0_IRQHandler'; Output/PD52840V1R1_Thread Release/Obj/nrf_libuarte_drv.o:xx:\xxxxx\xxxx\xxxxx\nRF52840\Nordic\SDK\nRF5_SDK_for_Thread_and_Zigbee_v4.0.0_dc7186b\components\libraries\libuarte/nrf_libuarte_drv.c:826: first defined here".
- For this error, I tried the following:
- Enabled NRFX_PRS_ENABLED and checked NRFX_PRS_BOX_2_ENABLED
- Disabled UART_LEGACY_SUPPORT and UART_EASY_DMA_SUPPORT in sdk_config.h
However, I still get the multiple definitions for "UARTE0_UART0_IRQHandler" error.
When I changed the definition to , I can successfully transmit the message. I see some response on the Rx line on the scope. However, the control in the code isn't going to "NRF_LIBUARTE_ASYNC_EVT_RX_DATA". I can see that I am getting NRF_LIBUARTE_ASYNC_EVT_TX_DONE event in the event handler.
I am trying to understand the following:
- Why am I getting the UARTE0_UART0_IRQHandler error and how to fix that?
- Why is the control not going to the NRF_LIBUARTE_ASYNC_EVT_RX_DATA part of the event handler even after me seeing Rx pulses on the scope?(If I just run the application without thread, everything's working the way it should)
Can you please help me understand the above questions? Here's the UART Code: