Implement a UART transmitter and receiver, including framing and baud-rate timing. Test communication between two devices and diagnose mismatched settings.