UART Protocol Explained: Basics, Interfacing, Configuration, Data Format, Pros and Cons