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

相关推荐
Zyed3 分钟前
[FreeRTOS]Day7项目介绍
stm32·单片机·嵌入式硬件
xuxie991 小时前
start7 电机闭环控制
单片机·嵌入式硬件
嵌入式-老费2 小时前
esp32开发与应用(播放wav音频文件)
嵌入式硬件
LCG元2 小时前
嵌入式开发踩坑排查实战:从 STM32 外设初始化到 Linux SPI 驱动的 15 类硬件疑难故障深度复盘
linux·stm32·单片机
piaoyiren3 小时前
基于 STM32F103 蓝牙遥控云台超声波避障小车
stm32·单片机·嵌入式硬件·蓝牙·超声波测距·直流电机
Industio_触觉智能3 小时前
RK3576开发板UART驱动实战教程(下),基于触觉智能开发板演示
嵌入式硬件·硬件架构·串口·uart·智能硬件·rs232·rs485
ShallWeL3 小时前
Orin 上 USB / CSI 相机采集踩坑
人工智能·嵌入式硬件·智能硬件·agi
Zyed4 小时前
[FreeRTOS]Day8-Part1队列+红外遥控器玩游戏+旋转编码器玩游戏
stm32·单片机·玩游戏
十月的皮皮4 小时前
STM32从零到量产开发:四路继电器工业控制模块开发— Modbus RTU 通讯协议设计
stm32·stm32cubemx·hal库
JSMSEMI114 小时前
JSM4430 30V N 沟道增强型 MOSFET
单片机·嵌入式硬件