Hello, we can't seem to be UART break working in interrupt. Is there any detailed documentation on UART operation? We're using the spi_mem_nRF51 Series Reference Manual Version 2.1. It works for TDX and RDX but not an error. Below is our setup and interrupt code. Thanks
void uart_init(void) {
simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);
// Enable interrupt:
NVIC_EnableIRQ(UART0_IRQn);
NRF_UART0->INTENSET = (UART_INTENSET_RXDRDY_Set << UART_INTENSET_RXDRDY_Pos) |
(UART_INTENSET_TXDRDY_Set << UART_INTENSET_TXDRDY_Pos) |
(UART_INTENSET_ERROR_Set << UART_INTENSET_ERROR_Pos);
}
void UART0_IRQHandler(void) {
// RX data in interrupt
if (NRF_UART0->EVENTS_RXDRDY == 1)
{
NRF_UART0->EVENTS_RXDRDY = 0;
uart_state_m(UART_EVENT_RX, NRF_UART0->RXD);
}
// TX data in interrupt
if (NRF_UART0->EVENTS_TXDRDY == 1)
{
NRF_UART0->EVENTS_TXDRDY = 0;
uart_state_m(UART_EVENT_TX, 0);
}
// RX data in interrupt
if (NRF_UART0->EVENTS_ERROR == 1)
{
NRF_UART0->EVENTS_ERROR = 0;
uart_state_m(UART_EVENT_ERROR, NRF_UART0->ERRORSRC);
}
}