Content originally posted in LPCWare by gbm on Wed Nov 23 02:20:58 MST 2011
First, there are many UART interrupt sources - error, modem status change, received data, empty transmit register, timeout when receiving data with FIFO not empty.
Second, 16550-type UART, after which the LPC UARTs were modelled, is an outdated controller withe read-sensitive registers, which makes a proper interrupt servicing techinqe a nightmare. It is possible to write a non-elegant but working code for interrupt-driven transmit (did that a few times), and there are no problems with interrupt-driven reception.
The NXP demo code looks slighly incorrect, but ii ts 90% useable.