Try as I might I can't get the UART driver to receive data., it appears the the IRQ for the UART (UART2 in my case) isn't firing on a receive.
In a bit of test code running in the foreground, if I poll UART2->D then I'm receiving the data, so it isn't a board/hardware level issue.
I've based my code on the example at \SDK_2.0_MKL17Z256xxx4\boards\frdmkl43z\driver_examples\uart\interrupt_transfer
I'm using UART_TransferSendNonBlocking() and UART_TransferReceiveNonBlocking() to send and receive. Sending data over the UART works find and the IRQ UART_TransferHandleIRQ() fires when I'm sending data, however no matter how much data I transfer via UART the IRQ never fires when I'm attempting to receive.
Looking at a register level, all the bit's I'd expect to be set/clear are as I'd expect. I.e.
- UART2->C2 - RIE (Receive Interrupt Enable) is set.
- UART2->C2 - RE (Receive Enable) is set.