详细讲解 "电子芯片之间通信的语言---IIC" 附STM32源码

**自然界的语言存在着不同的形式,中国人说汉语、英国人说英语、西班牙人说西班牙语...当然这些语言不是与生俱来的,而是为了方便交流而产生。语言可以说许许多多,但只有方便传播、方便使用、方便交流的语言才会生存下来。而IIC(Inter-Integrated Circuit)就是为了集成芯片而产生的语言,字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线,它是一种...
摘要由CSDN通过智能技术生成

自然界的语言存在着不同的形式,中国人说汉语、英国人说英语、西班牙人说西班牙语…当然这些语言不是与生俱来的,而是为了方便交流而产生。语言可以说许许多多,但只有方便传播、方便使用、方便交流的语言才会生存下来。而IIC(Inter-Integrated Circuit)就是为了集成芯片而产生的语言,字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构。

1.Why?为什么用IIC进行集成电路之间的交流?

1)硬件电路简单,仅仅需要两根数据线SCL和SDA
2)工作与主/从模式、数据可双向传输、可挂接多个从设备
3)稳定的数据传输(每个器件有相应的地址不会发错信息,根据时钟节奏传输每个bit)

在这里插入图片描述
总结:IIC就是因为简单、简单、简单才这么火热!但传输速度不及其他总线方式(标准模式下100kbit/s)。

2.What?什么地方用到IIC来信息交流?

现在许多单片机,都支持硬件IIC,但没有软件模拟稳定。还有许多模块,传感器也都支持IIC(例如:存储器AT24C02、温度传感器DS18B20、陀螺仪MPU6050等等),所以有很大必要去学习IIC通信,对将来的开发有很大帮助!

3.How?怎样去实现IIC通信?

根据IIC时序图可分为四步走,分别是:起始信号、数据信号、应答信号、终止信号。

1)起始信号
时钟线SCL为高电平期间,数据线SDA来一个下降沿。

2)终止信号
时钟线SCL为高电平期间,数据线SDA来一个上升沿。

void i2c_Start(void)
{
   
	SDA_OUTPUT_Mode();
	
	SCL_1;           //通信状态
	SDA_0;Delay1(100);
	
	SDA_1;Delay1(500);//SDA 的下降沿表示开始通信
	SDA_0;Delay1(500);
	SCL_0;
}

void i2c_Stop(
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值