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

相关推荐
然后,是第八天2 小时前
[模块教学]VK16K33_8×16LED矩阵屏的驱动以及技术文档,矩阵屏, 详细配置说明
stm32·单片机·iic·8×16点阵屏
指针刺客2 小时前
串口数据收发的设计
单片机·嵌入式硬件
文火冰糖的硅基工坊4 小时前
[硬件电路-170]:50Hz工频干扰:本质、产生机制与影响
嵌入式硬件·系统架构·电路·跨学科融合
longxiangam6 小时前
墨水屏程序
单片机·嵌入式硬件·rust·risc-v
兆龙电子单片机设计10 小时前
【STM32项目开源】STM32单片机智能恒温箱控制系统
stm32·单片机·物联网·开源·毕业设计
索迪迈科技13 小时前
基于野火F407开发板实现电源管理-停止模式
c语言·stm32·单片机·嵌入式硬件·mcu
小莞尔14 小时前
【51单片机】【protues仿真】基于51单片机宠物投食系统
c语言·stm32·单片机·嵌入式硬件·51单片机
方圆工作室14 小时前
Arduino音乐键盘程序
单片机·嵌入式硬件·计算机外设
Echo_cy_14 小时前
STM32 SPI通信协议
stm32·单片机·嵌入式硬件