【STM32】I2C详解

00. 目录

01. I2C简介

I2C(内部集成电路)总线接口用作微控制器和 I2C 串行总线之间的接口。它提供多主模式功能,可以控制所有I2C总线特定的序列、协议、仲裁和时序。它支持标准和快速模式。它还与 SMBus 2.0 兼容。

它可以用于多种用途,包括 CRC 生成和验证、SMBus(系统管理总线)以及 PMBus(电源管理总线)。

根据器件的不同,可利用 DMA 功能来减轻 CPU 的工作量。

02. I2C主要特性

并行总线/I 2 C 协议转换器
● 多主模式功能:同一接口既可用作主模式也可用作从模式
● I 2 C 主模式特性:
— 时钟生成
— 起始位和停止位生成
● I 2 C 从模式特性:
— 可编程 I 2 C 地址检测
— 双寻址模式,可对 2 个从地址应答
— 停止位检测
● 7 位/10 位寻址以及广播呼叫的生成和检测
● 支持不同的通信速度:
— 标准速度(高达 100 kHz)
— 快速速度(高达 400 kHz)
● 适用于 STM32F42xxx 和 STM32F43xxx 的可编程数字噪声滤波器
● 状态标志:
— 发送/接收模式标志
— 字节传输结束标志
— I 2 C 忙碌标志
● 错误标志:
— 主模式下的仲裁丢失情况
— 地址/数据传输完成后的应答失败
— 检测误放的起始位和停止位
— 禁止时钟延长后出现的上溢/下溢
● 2 个中断向量:
— 一个中断由成功的地址/数据字节传输事件触发
— 一个中断由错误状态触发
● 可选的时钟延长

● 带 DMA 功能的 1 字节缓冲
● 可配置的 PEC(数据包错误校验)生成或验证:
— 在 Tx 模式下,可将 PEC 值作为最后一个字节进行传送
— 针对最后接收字节的 PEC 错误校验
● SMBus 2.0 兼容性:
— 25 ms 时钟低电平超时延迟
— 10 ms 主器件累计时钟低电平延长时间
— 25 ms 从器件累计时钟低电平延长时间
— 具有 ACK 控制的硬件 PEC 生成/验证
— 支持地址解析协议 (ARP)
● PMBus 兼容性

03. I2C功能说明

除了接收和发送数据之外,此接口还可以从串行格式转换为并行格式,反之亦然。中断由软件使能或禁止。该接口通过数据引脚 (SDA) 和时钟引脚 (SCL) 连接到 I 2 C 总线。它可以连接到标准(高达 100 kHz)或快速(高达 400 kHz)I 2 C 总线。

模式选择

该接口在工作时可选用以下四种模式之一:
● 从发送器
● 从接收器
● 主发送器
● 主接收器
默认情况下,它以从模式工作。接口在生成起始位后会自动由从模式切换为主模式,并在出现仲裁丢失或生成停止位时从主模式切换为从模式,从而实现多主模式功能。

IIC框图
在这里插入图片描述

扫描二维码关注公众号,回复: 11883433 查看本文章

04. I2C中断

在这里插入图片描述

05. I2C相关寄存器

5.1 I2C 控制寄存器 1 (I2C_CR1)

I2C Control register 1
偏移地址:0x00
复位值:0x0000
在这里插入图片描述

5.2 I2C 控制寄存器 2 (I2C_CR2)

I2C Control register 2
偏移地址:0x04
复位值:0x0000
在这里插入图片描述

5.3 I2C 自有地址寄存器 1 (I2C_OAR1)

I2C Own address register 1
偏移地址:0x08
复位值:0x0000
在这里插入图片描述

5.4 I2C 自有地址寄存器 2 (I2C_OAR2)

I2C Own address register 2
偏移地址:0x0C
复位值:0x0000
在这里插入图片描述

5.5 I2C 数据寄存器 (I2C_DR)

I2C Data register
偏移地址:0x10
复位值:0x0000
在这里插入图片描述

5.6 I2C 状态寄存器 1 (I2C_SR1)

I2C Status register 1
偏移地址:0x14
复位值:0x0000
在这里插入图片描述

5.7 I2C 状态寄存器 2 (I2C_SR2)

I2C Status register 2
偏移地址:0x18
复位值:0x0000
在这里插入图片描述

5.8 I2C 时钟控制寄存器 (I2C_CCR)

I2C Clock control register
偏移地址:0x1C
复位值:0x0000
在这里插入图片描述

06. 附录

6.1 【STM32】STM32系列教程汇总

网址:【STM32】STM32系列教程汇总

07. 声明

猜你喜欢

转载自blog.csdn.net/dengjin20104042056/article/details/109033077