Try to send 16 bytes via USART1.
ISR has reset value (0xnnnn n0C0) before sending first byte.
Write bytes into TDR like this: USART1->TDR = *bufptr++;
ISR bits TXE and TC get cleared as expected (0xnnnn n000) after first byte.
But neither TXE not TC get set again !?!
So cannot send the remaining 14 bytes...
What can cause this?