IIC总线简介

1、IIC总线简介

1.1、总线的特点

  • 半双工;
  • 两条总线线路:一条数据线(SDA),一条时钟线(SCL);
  • 支持多主机,支持冲突检测和仲裁,防止数据被破坏;
  • 结构简单,接口连接方便,成本较低;

1.2、协议的内容

1.3、设备地址(固定和可编程两部分组成)

分为7位地址和10位地址

IIC器件用7位地址来标识,分为4个固定位和3个可编程位,so,可以连接8个相同的器件。

7位寻址:起始位后的第一个字节决定了主机选择哪一个从机,(第一个字节由七位地址和一位数据传输方向组成)

0:表示往从机写

1:表示从从机读

10位寻址:和七位寻址兼容。由起始位后两个字节决定选择哪个从机,

  • 第一个字节的头7位111110XX,(XX为从机地址的高两位),第8位,R/W位;
  • 第二个字节的为从机地址的剩下8位。

0:表示往从机写

1:表示从从机读

​ 7位寻址

1.5、IIC总线信号类型

  • 开始信号:SCL为高电平,SDA从高电平跳变为低电平,开始传送数据;
  • 结束信号:SCL为高电平,SDA从低电平跳变为高电平,结束传送数据;
  • 应答信号:接收设备收到8bits数据后,在第9个数据周期,向发送设备发送低电平,表示收到数据,发送高电平,表示未应答。

2、名词解释

2.1、专业术语

  • 发送器:发送数据到总线的器件;
  • 接收器:从总线接受数据的器件;
  • 主机:初始化发送产生时钟信号和终止发送的器件;
  • 从机:被主机寻址的器件(寻址可以分为七位和十位寻址);
  • 多主机:同时由多个主机尝试控制总线,但是不破坏报文;
  • 仲裁:有多个主机尝试控制总线,但是只允许其中一个主机控制总线并且使报文不被破坏的过程。

2.1、仲裁详解

当前有两个发送器在改变数据线的值,每一个发送器会检测当前数据线的值是否和自己发送的值是一样的,如果一样继续发送,直到有一个发送器发现自己发送的和数据线的值不一样时,会自动退出,且转换为接收状态。

3、IIC控制器

3.1、控制器详解

3.2、控制器寄存器详解

GPIOx_BSRR和GPIOx_BRR 寄存器:

GPIOx_BSRR :

  • [15:0]:为0则对相应的ODRx位没有任何动作;为1则对相应的ODRx位置1操作
  • [31:16]:为0则对相应的ODRx位没有任何动作;为1则对相应的ODRx位复位操作

GPIOx_BRR;同理

其实他俩是同一效果,只是优先级不同。
经过查询资料,只是习惯关系,就像stm32f103系列中置位函数set和reset差不多。

本文使用的开发板时钟线和数据线分别连接芯片的PF14和PF15;

4、原理代码

iic.h
#define GPIO_PIN_15 (0x1 <
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值