Had a weird one today. Two identical STM32s outputting the same data from the USART. With one the bit timing was consistently 320ns faster than the other and it stretched out the last bit but the byte timing was identical. It was a faulty IC but we'd never seen that problem before. Stuck bit in some internal counter or shift register perhaps? Changed the chip and all was fine but very odd. Problem was present on both USARTs we were using on the chip.