I2C 通信协议详解:时序、EEPROM 读写流程与实战总结
低速版本(免费)100hz高速版本ghz以上的速率正常高速设备大概在400hz串行同步半双工通信总线方式有主机 从机数据线时钟线要接上拉电阻4.7k----10k欧姆之间i2c时序scl高电平进行采样 sda数据线不能改变电平1.起始位起始信号scl时钟信号线为高电平时SDA数据信号线由高变低出现下降沿2.数据位e2prom芯片我们使用的设备地址是2k的这个写入流程时序1.主机发送起始信号设备地址写位信号2.主机等待丛集回复ACK应答3.主机发送寄存器地址等待丛集应答4.主机向从机发送数据等待从机回应5.主机发送停止信号读时序1.主机发送起始信号设备地址写位。等待丛机应答2.主机发送寄存器地址等待丛机回应3.主机从新发送起始信号设备地址读位等待丛机ack地址4.主机接收丛机数据主机回复ack5.当主机接收完最后一个字节数据项丛机回复NO ACK应答6.主机发送停止信号1. 总结 I2C 工作流程I2C 是一种串行同步半双工通信总线通过 SCL 时钟线和 SDA 数据线实现主机与从机之间的数据交互。通信过程以起始信号开始主机依次发送设备地址、寄存器地址和数据从机通过 ACK 应答确认接收最后以停止信号结束。读操作则在写地址后重新发起起始信号并切换为读位主机接收数据后回复 ACK最后一个字节回复 NACK 并发送停止信号。2. 应用场景I2C 总线广泛应用于嵌入式系统中常见场景包括EEPROM 存储如本文章节提到的 E2PROM 芯片用于保存配置参数和少量数据。传感器采集连接温湿度、气压、加速度等传感器读取环境数据。显示屏驱动驱动 OLED、LCD 等小尺寸屏幕减少引脚占用。时钟芯片与 RTC 实时时钟芯片通信获取或设置时间。3. 什么是 I2CI2CInter-Integrated Circuit集成电路间总线是一种由飞利浦公司开发的串行通信总线用于在微控制器与外围设备之间传输数据。它采用两根线完成通信SCL串行时钟线负责同步时钟信号SDA串行数据线负责传输数据。I2C 属于同步、半双工通信方式支持一主多从或多主多从的总线结构每个从设备都有唯一的设备地址主机通过地址寻址来访问指定设备。其优点是引脚占用少、连接简单适合短距离、低速率的设备通信。4. 描述 I2C 时序I2C 时序以起始信号开始以停止信号结束整个过程由 SCL 时钟线同步。具体时序如下起始信号SCL 为高电平时SDA 由高变低产生下降沿表示通信开始。数据位传输SCL 高电平期间 SDA 数据保持稳定SCL 低电平期间 SDA 允许变化每个时钟周期传输 1 位数据高位在前。ACK 应答每传输完 8 位数据后接收方在第 9 个时钟周期将 SDA 拉低表示应答确认。停止信号SCL 为高电平时SDA 由低变高产生上升沿表示通信结束。

相关新闻

Java学生宿舍管理系统:从数据库设计到事务处理实战

Java学生宿舍管理系统:从数据库设计到事务处理实战

简介:这是一套面向高校计算机专业学生与Java Web初学者的学生宿舍管理系统完整项目资料,围绕住宿信息管理、宿舍与床位分配、日常行为记录等核心业务展开,可用于课程设计、毕业设计或Java Web入门实战。压缩包共661个文件,约77.19…

2026/9/24 18:54:29 阅读更多 →
Java后端配小程序前端:地图定位与轨迹记录实战

Java后端配小程序前端:地图定位与轨迹记录实战

简介:这是一份面向Java后端开发者与小程序入门者的实战型项目源码,围绕小程序地图定位场景,演示如何用Java服务端配合前端完成位置服务。内容涉及GPS与网络定位、地理编码与反地理编码、路径规划、位置实时更新、隐私安全处理及前后端接口设计…

2026/9/24 18:54:29 阅读更多 →
Flutter鸿蒙适配实战:epubx电子书解析库改造全记录

Flutter鸿蒙适配实战:epubx电子书解析库改造全记录

做 Flutter 开发这几年,最让我头疼的不是业务逻辑,而是三方库跨平台的兼容性。鸿蒙生态起来之后,这个问题更是被放大:很多在 Android 上躺着就能跑的插件,一到鸿蒙平台上就是各种异常,轻则 API 找不到&…

2026/9/24 18:54:29 阅读更多 →

最新新闻

微网群分布式优化调度:目标级联法ATC原理与Matlab实现

微网群分布式优化调度:目标级联法ATC原理与Matlab实现

最近帮学生调一个微网群协调调度项目,模型不复杂,但第一次从集中式转到分布式时,问题一个接一个来。最后用目标级联法(ATC)把问题拆开,才把收敛曲线跑顺。这里整理一份从原理到Matlab实现的完整笔记&#x…

2026/9/24 19:36:05 阅读更多 →
随机积分入门:从布朗运动到伊藤积分的金融数学基础

随机积分入门:从布朗运动到伊藤积分的金融数学基础

1. 连续时间下的"积分"为什么需要另起炉灶1.1 经典积分在随机路径面前的两大失效点先抛一个我们在学习随机积分时最容易遇到的困惑:我们在微积分里明明已经学过了黎曼积分和勒贝格积分,为什么到了金融数学里还要专门搞一套"随机积分"…

2026/9/24 19:36:05 阅读更多 →
RTSP协议深度解析:信令握手、SDP解析与工程避坑指南

RTSP协议深度解析:信令握手、SDP解析与工程避坑指南

1. 这不是“又一个网络协议”,而是视频系统里真正扛压的底层信令通道你有没有遇到过这样的场景:监控平台突然卡顿,画面上雪花点密密麻麻;安防中控室大屏上,十几个摄像头画面同时花屏、断流;或者用OpenCV写了…

2026/9/24 19:36:05 阅读更多 →
Chat2DB完整上手指南:自然语言写SQL的免费数据库客户端

Chat2DB完整上手指南:自然语言写SQL的免费数据库客户端

Chat2DB完整上手指南:自然语言写SQL的免费数据库客户端 【免费下载链接】Chat2DB Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40 databases, manage data, ed…

2026/9/24 19:36:05 阅读更多 →
MySQL索引失效幕后真相:LIKE后缀匹配如何用反向存储提升百倍性能

MySQL索引失效幕后真相:LIKE后缀匹配如何用反向存储提升百倍性能

老周上周被一条SQL搞得没脾气:客户表三千多万行,按手机尾号找客户,条件写的是WHERE phone LIKE %6688,一次查询跑了二十九秒,慢查询日志每天都被它霸榜。他在phone上明明建了索引,可执行计划里type还是ALL&…

2026/9/24 19:36:05 阅读更多 →
MySQL 9.1.0安装教程:Windows与Linux全流程保姆级指南

MySQL 9.1.0安装教程:Windows与Linux全流程保姆级指南

1. 写在安装之前:为什么9.1.0值得你重新折腾一遍MySQL 9.1.0 是 Oracle 在创新版(Innovation Release)序列里的重要一版,也是从 8.x 迈向新版本号体系之后,普通开发者最容易接触到的“第一个大版本跳跃”。很多人一看到…

2026/9/24 19:35:05 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →