void uart_event_handler(void *context, nrf_libuarte_async_evt_t *p_evt) { nrf_libuarte_async_t *p_libuarte = (nrf_libuarte_async_t *)context; ret_code_t ret; switch (p_evt->type) { case NRF_LIBUARTE_ASYNC_EVT_ERROR: break; //receive data event case NRF_LIBUARTE_ASYNC_EVT_RX_DATA: send_UART_1(textAT1_Uart1, sizeof(textAT1_Uart1)); // ret = nrf_libuarte_async_tx(p_libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length); if (ret == NRF_ERROR_BUSY) { buffer_t buf = { .p_data = p_evt->data.rxtx.p_data, .length = p_evt->data.rxtx.length, }; ret = nrf_queue_push(&m_buf_queue, &buf); APP_ERROR_CHECK(ret); } else { APP_ERROR_CHECK(ret); } m_loopback_phase = true; break; case NRF_LIBUARTE_ASYNC_EVT_TX_DONE: if (m_loopback_phase) { nrf_libuarte_async_rx_free(&libuarte1, textAT1_Uart1, sizeof(textAT1_Uart1)); // nrf_libuarte_async_rx_free(p_libuarte, p_evt->data.rxtx.p_data, p_evt->data.rxtx.length); if (!nrf_queue_is_empty(&m_buf_queue)) { buffer_t buf; ret = nrf_queue_pop(&m_buf_queue, &buf); APP_ERROR_CHECK(ret); UNUSED_RETURN_VALUE(nrf_libuarte_async_tx(p_libuarte, buf.p_data, buf.length)); } } break; default: break; } }
Hi, I am using libuartes and when I receive text from other device my nrf52833 will respone "textAT1_Uart1". But I can not free them (using &libuartes1 because I'm using 2 uartes so how can I free them ? Thank in advance