news 2026/6/18 0:52:21

[STM32]I2C总线时序详解及软件实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32]I2C总线时序详解及软件实现

目录

1 起始信号、终止信号、空闲信号及应答信号

2 写时序

3 读时序

4 I2C读写数据的时机(见参考文章1)

5 软件I2C实现

6 Keil逻辑分析仪的使用

7 参考文章


I²C(Inter-Integrated Circuit)是一种由飞利浦公司(现恩智浦)设计的同步串行通信协议,广泛应用于短距离设备间通信。其核心特点包括:

  1. 双线制:仅需SCL(时钟线)​SDA(数据线)​,支持多主多从架构,极大简化硬件设计。
  2. 地址寻址:每个从设备有唯一7位或10位地址,主设备通过地址访问特定从机,单总线可挂载多达112个(7位地址)设备。
  3. 半双工通信:数据线双向复用,速率覆盖标准模式(100kbps)​快速模式(400kbps)​高速模式(3.4Mbps)​
  4. 硬件简单:开漏输出结构配合上拉电阻,抗干扰强,适合传感器、EEPROM、显示屏等低复杂度外设。

典型应用场景:智能家居(温湿度传感器)、工业控制(模块状态读取)、消费电子(触摸屏驱动)。优势在于低成本、易扩展,但总线冲突需软件管理,长距离通信需中继增强。

1 起始信号、终止信号、空闲信号及应答信号

起始信号:当SCL为高电平时,SDA从高电平向低电平转换

中止信号:当SCL为高电平时,SDA从低电平向高电平转换

空闲信号:SDA和SCL同时为高电平时。

应答信号:发送端向接收端发送完一个字节数据(一般设置为8位),第九个时钟周期,接收端发送给发送端一个应答信号,数据才算传输成功。低电平表示应答成功,高电平表示应答失败。

2 写时序

这是一个完整的写时序图,主机经过如下操作:

  1. 空闲状态:SDA和SCL都为高电平
  2. 主机发起起始信号(不管读写都是主机发起的):SCL高电平时,SDA由高电平向低电平转换
  3. 主机发送7位设备地址+1位读写位:7位设备地址位,加上1位读/写位(0表示写,1表示读)。如MPU6050的地址位0x68(这是8位表示的0x01101000),要修改为七位,左移一位所以为(0x11010000 = 0xD0)。所以此处发送0x11010001。
  4. 等待从机应答:主机释放SDA到高电平状态,从机通过拉低SDA来表示ACK,如果SDA仍是高电平则表示NACK。
  5. 主机发送寄存器地址:8位寄存器地址。
  6. 等待从机应答:主机等待从设备发送应答信号,以确保从设备已成功接收到数据。
  7. 主机发送数据:8位数据
  8. 等待从机应答:主机等待从设备发送应答信号,以确保从设备已成功接收到数据。
  9. 可以不断发送数据,重复执行7和8
  10. 主机发送中止信号:SCL高电平时,SDA由低电平向高电平转换
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 0:49:02

生产级机器学习系统:从模型部署到合规治理的全链路实践

1. 项目概述:当模型走出笔记本,真正开始“呼吸”现实世界你有没有经历过这样的场景?模型在Jupyter Notebook里跑得飞起,AUC 0.92,F1 0.87,交叉验证稳如老狗;团队围在白板前击掌庆祝,…

作者头像 李华
网站建设 2026/6/9 5:06:23

避坑指南:ArcGIS成本路径分析中,重分类和权重设置的那些门道(以寻找最佳路径为例)

ArcGIS成本路径分析实战:从参数优化到空间决策逻辑在山区公路规划、输电线选址或自然保护区巡护路线设计中,我们常常需要寻找既符合工程要求又经济合理的通行路径。ArcGIS的成本路径分析工具为这类空间决策提供了强大支持,但许多用户在完成基…

作者头像 李华
网站建设 2026/6/9 4:56:28

Mac Mouse Fix终极指南:如何让你的普通鼠标超越苹果触控板

Mac Mouse Fix终极指南:如何让你的普通鼠标超越苹果触控板 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 想要让你的普通鼠标在Mac…

作者头像 李华