This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

OpenThread UARTE0

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".
    1. For this error, I tried the following:
    2. Enabled NRFX_PRS_ENABLED and checked NRFX_PRS_BOX_2_ENABLED
    3. 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:

  1. Why am I getting the UARTE0_UART0_IRQHandler error and how to fix that?
  2. 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:

Related