Notice, that in contrast with the SysTick handler, most handlers must, at the very least, determine the cause of the interrupt – with the USART this might be an empty transmit buffer or a full receive buffer – and clear the interrupt cause. Determining the cause is generally performed by reading a peripheral specific status register. Clearing the interrupt is accomplished by performing a necessary action (e.g. reading a data register) or directly resetting the corresponding status bit