IIC通信协议总结_iic 协议的芯片地址是可配置的嘛(2)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示
数据由从机向主机传送。

A
表示应答(低电平),
A
非表示非应答(高电平)。
S
表示起始信号,
P
表示终止信号。

[2]主机在第一个字节后,立即从从机读数据:

[3]在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相:

一般情况下,[3]是比较常见的,比如MPU6050模块,

发送起始信号

等待从机应答

写一个从机地址+0(表示写),

等待从机应答

发送一个字节的MPU6050加速度存储寄存器地址,

等待从机应答

再发送一次起始信号

等待从机应答

写一个从机地址+1(表示读)

等待从机应答

读取MPU6050传感器数据

主机非应答

e.IIC信号的模拟

主机可以采用不带I2C总线接口的单片机,如80C51、AT89C2051等单片机,利用软件实现I2C总线的数据传送,即软件与硬件结合的信号模拟。即使是含有IIC硬件的单片机(如stm32 103系列)也有一定的缺陷,所以一般也会模拟IIC的时序。现将具体时间截图如下:

具体的程序代码如下:

//产生起始信号

void I2C_Start(void)

{

I2C_SDA_OUT();//配置一下引脚,引脚设置为输出

I2C_SDA_H;//把数据线拉高

I2C_SCL_H;//把时钟线拉高

delay_us(5);//延时5微秒,要求大于4.7微秒

I2C_SDA_L;
//拉低,产生下降沿

delay_us(6);//这个过程大于4微秒

I2C_SCL_L;//最后一定要把这个时钟线拉低,因为只有时钟线拉低的时候才允许数据变化。

}

//产生停止信号

void I2C_Stop(void)

{

I2C_SDA_OUT();

I2C_SCL_L;

I2C_SDA_L;

I2C_SCL_H;

delay_us(6);

I2C_SDA_H;

delay_us(6);

}

//主机产生应答信号ACK

void I2C_Ack(void)

{

I2C_SCL_L;

I2C_SDA_OUT();

I2C_SDA_L;

delay_us(2);

I2C_SCL_H;

delay_us(5);

I2C_SCL_L;

}

//主机不产生应答信号NACK

void I2C_NAck(void)

{

I2C_SCL_L;

I2C_SDA_OUT();

I2C_SDA_H;

delay_us(2);

I2C_SCL_H;

delay_us(5);

I2C_SCL_L;

}

**//等待从机应答信号,我们只负责主机应答信号的产生,从机应答信号
//我们不控制。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

715883742496)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值