Hi everyone
I have been trying to use UARTE1 + UART0 combination for a device that i am working on, I have implemented the UART0 using the nrfx_uart library and it works fine
Problem :
1. nrfx_uarte peripheral gives me error interrupt on 7th byte and not transmit anything after that
2. only receive 6 bytes and no bytes after that , though there's data on the uart lines.
I am aware of the nrf_serial library , but that application does not suit the development that i am working on.
Can you please help me how can i get it working?
Here is the initalization i am using.
//Boolean flag to be set in interrupt handler; static volatile bool uart_xfer_done; //Uart instance to be used. static const nrfx_uarte_t uart1 = NRFX_UARTE_INSTANCE (1); //uart event handler decalartion static void uart_event_handler(nrfx_uarte_event_t const * p_event,void * p_context); void uart_lte_init(uint32_t rx_pin,uint32_t tx_pin,uint32_t baud_rate) { nrfx_uarte_config_t nrf_uart1; nrf_uart1.pselrxd = rx_pin ; nrf_uart1.pseltxd = tx_pin; nrf_uart1.pselcts = NRF_UARTE_PSEL_DISCONNECTED; nrf_uart1.pselrts = NRF_UARTE_PSEL_DISCONNECTED; nrf_uart1.hwfc = NRF_UARTE_HWFC_DISABLED; nrf_uart1.parity = NRF_UARTE_PARITY_EXCLUDED; nrf_uart1.interrupt_priority = NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY; nrf_uart1.p_context = NULL; switch(baud_rate) { case baud_rate_lte_1200: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_1200; break; case baud_rate_lte_2400: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_2400; break; case baud_rate_lte_4800: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_4800; break; case baud_rate_lte_9600: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_9600; break; case baud_rate_lte_14400: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_14400; break; case baud_rate_lte_19200: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_19200; break; case baud_rate_lte_28800: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_28800; break; case baud_rate_lte_31250: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_31250; break; case baud_rate_lte_38400: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_38400; break; case baud_rate_lte_56000: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_56000; break; case baud_rate_lte_57600: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_57600; break; case baud_rate_lte_76800: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_76800; break; case baud_rate_lte_115200: nrf_uart1.baudrate = NRF_UARTE_BAUDRATE_115200; break; default: break; } nrfx_uarte_init(&uart1,&nrf_uart1,uart_event_handler); //enable the rx nrf_uarte_event_clear(uart1.p_reg, NRF_UARTE_EVENT_ERROR); nrf_uarte_event_clear(uart1.p_reg, NRF_UARTE_EVENT_RXDRDY); nrf_uarte_task_trigger(uart1.p_reg, NRF_UARTE_TASK_STARTRX); }