文章目录
一、I2C总线协议
1.什么是I2C协议
I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。
2.I2C协议的物理层和协议层
2.1 物理层
2C是一个支持设备的总线。可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。对于I2C 总线,只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线(SCL)。
I2C 通讯设备常用连接方式:

2.2 协议层
主要是定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等。
通讯的起始和停止信号:

数据有效性:

从图中可以看出I2C在通讯的时候,只有在SCL处于高电平时,SDA的数据传输才是有效的。SDA 信号线是用于传输数据,SCL 信号线是保证数据同步。
响应:

当SDA传输数据后,接收方对接受到的数据进行一个应答。如果希望继续进行传输数据,则回应应答信号(低电平),否则回应非应答信号(高电平)。
3.I2C的两种方式——硬件I2C和软件I2C
3.1 硬件I2C
直接利用 STM32 芯片中的硬件 I2C 外设。
硬件I2C的使用
本文详细介绍了如何使用STM32单片机通过I2C协议与AHT20温湿度传感器进行通信,包括I2C协议的物理层和协议层解析,硬件I2C和软件I2C的区别,以及AHT20的代码实现和实物连线步骤,最终实现了温湿度数据的采集。
最低0.47元/天 解锁文章

769

被折叠的 条评论
为什么被折叠?



