i2c
IIC 是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用serial data (SDA)数据线 和 serial clock(SCL)时钟线两条信号线,数据线用来传输数据,时钟线用来同步数据收发。两根信号线都是双向传输的,这两条线都是漏极开路或者集电极开路结构,使用时需要外加上拉电阻,可以挂载多个设备。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的低速数据通信
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
uart
硬件上有两根线,一根用于发送,一根用于接收。数据是异步传输的,对双方的时序要求比较严格。UART的电平信号由MCU芯片决定,TTL/CMOS,是嵌入式硬件系统的信号电平。
UART多应用两个设备之间的通信,如用单片机的设备和计算机的通信。这样的通信可以做长距离的。