Hi @JK_265
I think you can refer to lpc55s16_usart_interrupt example.
But you need change some code.
USART_EnableInterrupts(DEMO_USART, kUSART_RxLevelInterruptEnable | kUSART_RxErrorInterruptEnable);
change to
USART_EnableInterrupts(DEMO_USART, kUSART_RxLevelInterruptEnable | kUSART_RxErrorInterruptEnable | kUSART_FramingErrorInterruptEnable);
.
And you also need to change DEMO_USART_IRQHandler function.
void DEMO_USART_IRQHandler(void)
{
uint8_t data;
/* If new data arrived. */
if ((kUSART_RxFifoNotEmptyFlag | kUSART_RxError) & USART_GetStatusFlags(DEMO_USART))
{
data = USART_ReadByte(DEMO_USART);
/* If ring buffer is not full, add data to ring buffer. */
if (((rxIndex + 1) % DEMO_RING_BUFFER_SIZE) != txIndex)
{
demoRingBuffer[rxIndex] = data;
rxIndex++;
rxIndex %= DEMO_RING_BUFFER_SIZE;
}
}
if (kUSART_FramingErrorInterruptEnable & USART_GetStatusFlags(DEMO_USART))
{
uint8_t discard = USART_ReadByte(DEMO_USART);
errorCounter++;
}
SDK_ISR_EXIT_BARRIER;
}
BR
Hang