4.2 I2C通信协议

1. I2C通信的基本流程

2. I2C的数据帧格式

对于串口一次只能传输8-9个比特位

而I2C总线一次可以传输多个字节

3.起始位和停止位

所谓起始位就是SCL高电压的时候,SDA出现下降沿,而停止位就是SCL高电压的时候,SDA出现上升沿

4.寻址

RW是方向位,Read Write ,写是0读是1,主机发送完之后,就会等待被寻址的从机给它应答,从机会发送一个ACK来应答,这个ACK应答信号相当于主机叫从机的名字,从机答到。当主机收到ACK之后就意味着主机寻址成功了,才会进入下一步数据传输阶段

主机首先释放SDA,也就是SDA引脚写1,当主机给SDA写1的时候,那这个SDA就会从总线上的SDA断开,这条线就悬空了,但是由于上拉电阻的作用,那这条SDA呈现高电压,如果没有设备应答它的时候,就始终维持高电压,这时候就等于没有收到应答信号。而如果有设备应答它的时候,这个设备就会把它重新拉低,那主机就会检测到一个低电压,主机只要检测到了低电压,就知道收到这个ACK了

5.传输数据

当寻址阶段成果之后,下一阶段就可以传输数据,传输数据一次性可以传输多个字节,发送方发一个字节,接收方就回复一个ACK

6.例子

从机0x20读一个字节(0x64),注意最后并没有发送ACK,因为只发送一个字节,就不需要发ACK了,也就是NAK

相关推荐
Zyed27 分钟前
[STM32]Day15读写FLASH+读取ID
前端·stm32·性能优化
芯岭技术郦29 分钟前
高性能的 32 位 ARM® Cortex®-M0+内核PY32F002A
单片机·嵌入式硬件
破晓单片机1 小时前
060、STM32项目分享:养老智能手环系统
stm32·单片机·嵌入式硬件
H__Rick1 小时前
C51学习-DAY4
嵌入式硬件·学习·51单片机·硬件工程
csg11072 小时前
PIC16F1947驱动CH376芯片实现SD卡数据存储
单片机·嵌入式硬件·物联网·自动化
H__Rick2 小时前
C51学习-DAY8
单片机·嵌入式硬件·学习
youcans_2 小时前
从零搭建 STM32 VSCode 开发环境
vscode·stm32·单片机·嵌入式硬件
ye150127774553 小时前
220V降5V0.3A电源芯片WT5104
单片机·嵌入式硬件·其他·硬件工程
第二层皮-合肥3 小时前
【数据采集专栏】输入阻抗
单片机·嵌入式硬件
風清掦3 小时前
【STM32学习笔记-15】FLASH 闪存(Claude)
笔记·stm32·单片机·嵌入式硬件·学习