AnsweredAssumed Answered

Can't receieve data on UART / ISR not firing for Rx

Question asked by Ben Griffiths on Jan 16, 2017
Latest reply on Jan 19, 2017 by jeremyzhou

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.

Outcomes