UART(通用异步收发传输器)和 I2C(集成电路总线)是两种常用的串行通信协议,在硬件结构、通信方式、适用场景等方面有显著差。

1. UART(以 S3C2440 与 DHT11 为例)

1.引脚:

UART 通信仅需 2 根信号线:TXD(发送) 和 RXD(接收),但 DHT11 是单总线设备,实际通过 1 根 GPIO 模拟 UART 时序(半双工通信)。

S3C2440 需将某一 GPIO(如 GPG1)配置为输入 / 输出模式,模拟 UART 的起始位、数据位、停止位时序。

DHT11 仅通过 1 根数据线与 S3C2440 连接,既发送数据也接收指令(主机拉低总线发起通信)。单总线通信协议,严格意义上不是uart 

连接:点对点通信(1 个主机对应 1 个从机)

2. I2C(以 S3C2440 与 LM75 为例)

1. 引脚:

I2C 通信需 2 根信号线:SDA(数据线) 和 SCL(时钟线),均为双向线,需上拉电阻(通常 4.7kΩ)。

S3C2440 通过 I2C 控制器引脚(如 GPE15=SCL,GPE14=SDA)与 LM75 连接。

LM75 作为从设备,通过 SDA 接收主机指令(如读取温度),通过 SCL 同步时钟。

连接特点:支持多设备共享总线(1 个主机可连接多个从机),每个从机有唯一地址(LM75 默认地址为 0x48)。

3. 注意

uart:无时钟线,发送方和接收方需提前约定波特率(如 9600、115200 bps)、数据格式(起始位 1 位 + 数据位 8 位 + 停止位 1 位,无奇偶校验)

I2c:有专用时钟线(SCL),主机(S3C2440)通过 SCL 控制通信节奏,从机(LM75)按时钟节拍收发数据

uart适合:点对点通信、中长距离、速率要求不高

I2c:多设备共享总线、短距离、低速率

UART 适合点对点的简单通信,而 I2C 更适合多设备共享总线的场景。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐