【STM32】入门(六):I2C协议

【STM32】STM32单片机总目录

1、常见I2C设备

EEPROM
温湿度传感器,例如:AHT10
电量计,例如:TI的BQ34Z100
日历时钟
模数或数模转换器

2、I2C总线结构

  • I2C只有两根线:数据线SDA和时钟线SCL;
  • SDA 和 SCL 都是双向线路
  • I2C设备并联在I2C总线上
  • 每个设备都有一个地址,一根总线上的设备地址不能有重复的
  • 地址长度为7位或10位
  • 7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址,并且总线电容不超过400PF
  • I2C设备分为主机、从机
  • 同一总线上可以有多个主机(控制器)
  • 通讯速率:标准模式100kbit/s 、快速模式 400kbit/s、高速模式3.4Mbit/s
  • 7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址
  • 10位I2C总线可以挂接更多的10位I2C设备.
    在这里插入图片描述
    在这里插入图片描述

3、协议层

传输协议分类:读、写、复合

3.1 读操作

在这里插入图片描述
阴影部分:主机 发送
非阴影部分:从机 发送

S:起始
SLAVE ADDRESS:从机地址
读写标志:这里是‘1’表示读
第一个A:从机应答
DATA:从机发来的数据
第二个A:主机应答
A上一杠:非应答
P:停止

3.2 写操作

在这里插入图片描述
阴影部分:主机 发送
非阴影部分:从机 发送

S:起始
SLAVE ADDRESS:从机地址
读写标志:这里是‘0’表示写
第一个A:从机应答
DATA:主机发来的数据
第二个A:从机应答
A上一杠:非应答
P:停止

3.3 复合操作

复合操作就是一次性可以执行多次读、多次写,并且读和写是交替进行。
在这里插入图片描述
阴影部分:主机 发送
非阴影部分:注意——此时非阴影不一定都是从机发送,而是根据读写位来决定,后面的数据是主机发送还是从机发送。

S:起始
SLAVE ADDRESS:从机地址
读写标志:这里可以是‘0’表示写、或者‘1’表示读
P:停止

3.4 起始、停止信号

在这里插入图片描述
当时钟线SCL 是高电平时,数据线SDA 线从电平向电平切换,表示通讯的起始
当时钟线SCL 是高电平时, 数据线SDA线由电平向电平切换,表示通讯的停止

3.5 从机地址

从起始位开始的第一个字节的头 7 位组成了从机地址,I 2 C 总线委员会协调 I 2 C 地址的分配,几种特别的地址如下:
在这里插入图片描述

3.6 数据有效

在这里插入图片描述
时钟线SCL为电平的时候,数据线SDA才有效

SDA 为高电平时表示数据“1”,
SDA 为低电平时表示数据“0”。

时钟线SCL为电平的时候,数据线SDA 无效( 一般在这个时候 SDA 进行电平切换)

3.7 响应

在这里插入图片描述

响应包括“应答 (ACK)”和“非应答 (NACK)”两种信号。
无论主、从机,作为数据接收端时,接收到 I2C 传输的一个字节数据或地址后:

若希望对方继续发送数据,则需要向对方发送“应答 (ACK)”信号,
	发送方会继续发送下一个数据;
若接收端希望结束数据传输,则向对方发送“非应答 (NACK)”信号,
	发送方接收到该信号后会产生一个停止信号,结束信号传输。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值