【STM32】I2C详解
00. 目錄
文章目錄
- 00. 目錄
- 01. I2C簡介
- 02. I2C主要特性
- 03. I2C功能說明
- 04. I2C中斷
- 05. I2C相關寄存器
- 5.1 I2C 控制寄存器 1 (I2C_CR1)
- 5.2 I2C 控制寄存器 2 (I2C_CR2)
- 5.3 I2C 自有地址寄存器 1 (I2C_OAR1)
- 5.4 I2C 自有地址寄存器 2 (I2C_OAR2)
- 5.5 I2C 數據寄存器 (I2C_DR)
- 5.6 I2C 狀態寄存器 1 (I2C_SR1)
- 5.7 I2C 狀態寄存器 2 (I2C_SR2)
- 5.8 I2C 時鐘控制寄存器 (I2C_CCR)
- 06. 附錄
- 07. 聲明
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框圖
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. 聲明
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【STM32】I2C详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【STM32】DMA程序示例
- 下一篇: 【STM32】I2C相关函数和类型