Problem: flush() would return when the transmission buffer was empty, but the txBuffer was not being used so flush() would return straight away. write() would wait until it had sent all bytes to the UART before returning, but there would still be bytes in the UART that had not been sent, so it would return 1-11 bytes early
Fix: Used the UART_EVENT_TX_COMPLETE call back to determine when the UART has finished transmitting and use this to determine when flush() should return
Problem: flush() would return when the transmission buffer was empty, but the txBuffer was not being used so flush() would return straight away. write() would wait until it had sent all bytes to the UART before returning, but there would still be bytes in the UART that had not been sent, so it would return 1-11 bytes early
Fix: Used the UART_EVENT_TX_COMPLETE call back to determine when the UART has finished transmitting and use this to determine when flush() should return