This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/CC2650: UART RX input is not triggering the UartReadCallback

Part Number: CC2650
Other Parts Discussed in Thread: CC2650

Tool/software: TI-RTOS

Hi all,

I am trying to receive packets from a PC over UART using a CC2650.

The issue I am facing is that the RX UART event triggered only once after the UART declaration and seems as that UART_read is a blocking method

my code:

after the code expose below I am able to receive via UART from a PC only once. I tried adding to UART_read() inside the callback but no luck.
Are there another solution instead of a blocking method and use a non-blocking UART for receiving?
for example a fully interruption/event RX. no call the UART_read() to just read and simulate a interruption

Thanks

void UartReadCallback(UART_Handle handle, void *rxBuf, size_t size) // Gets never called.
{
    tx_buf = *((uint8_t*) rxBuf);

    UART_write(uart, rxBuf, sizeof(size));

    UART_read(uart, &rxBuf, sizeof (rxBuf));
}
Void UART_Config()
{
  // Initialize application
  SimpleBLEPeripheral_init();

  UART_init();
  UART_Params_init(&uartParams);
  uartParams.writeDataMode = UART_DATA_BINARY;
  uartParams.writeMode = UART_MODE_BLOCKING;
  uartParams.readMode = UART_MODE_CALLBACK;
  uartParams.readCallback = UartReadCallback;
  uartParams.readReturnMode = UART_RETURN_NEWLINE;
  uartParams.readEcho = UART_ECHO_OFF;
  uartParams.baudRate = 9600;
  uart = UART_open(Board_UART0, &uartParams);

  if (uart == NULL) {
   System_abort("Error opening the UART");
  }
  void *rxBuf;
  UART_read(uart, &rxBuf, sizeof (rxBuf));
}