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

UART break not working

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);
        
}

}

Parents Reply Children
No Data
Related