Losses the bytes of data in LPUART IRQ HANDLER?
I have configured LPUART with 9600 baud rate and enable receiver interrupt with MCU 65Khz low power mode and my uart handler like
void LPUART1_IRQHandler(void)
{
uint32_t isrflags = READ_REG(hlpuart1.Instance->ISR);
uint32_t cr1its = READ_REG(hlpuart1.Instance->CR1);
uint32_t errorflags;
/* If no error occurs */
errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE));
if (errorflags == RESET)
{
/* UART in mode Receiver ---------------------------------------------------*/
if(((isrflags & USART_ISR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
{
UART_RX_Buffer[UART_Buffer_Counter]=LPUART1->RDR;
UART_Buffer_Counter++;
if(UART_Buffer_Counter==UART_RX_BUFFER_LENGTH)
UART_Buffer_Counter=0;
return;
}
}
}
and 200ms sytem tick interrupt,
- Some time losses the uart receiver byte data.