当前位置: 首页 > news >正文

N15 I²C(串行通信总线)

一、多路IO

红黑树(Red-Black Tree)是一种自平衡二叉搜索树(BST),通过5 条颜色性质将树高控制在O(log n)量级,保证查找、插入、删除的时间复杂度稳定为O(log n)。相比 AVL 树,它平衡要求更宽松,插入 / 删除时旋转次数更少。

(内核链表核心)

内核list_head链表节点只存前后指针,不包含业务数据。要通过链表节点指针找回整个结构体指针

  • 已知s2.liststruct stu里的list成员指针
  • &s1.list - &s1 = 24得到偏移量
  • 那么(struct stu *)((char *)&s2.list - 24)就能得到&s2,即从链表节点指针反推出父结构体指针

二、I²C:串行通信总线

特性开漏输出 (Open-Drain)推挽输出 (Push-Pull)
输出结构仅 N-MOS 下拉N-MOS 下拉 + P-MOS 上拉
高电平外部上拉电阻内部 P-MOS 主动拉高
低电平内部 N-MOS 主动拉低内部 N-MOS 主动拉低
高阻态MOS 管关断时为高阻无高阻态(始终输出高 / 低)
总线共享支持 “线与”,多设备并联安全不支持,易短路冲突
电平兼容可通过上拉电源实现电平转换电平固定为 GPIO 电源电压

空闲时总线保持高电平

  • SCL(Serial Clock):串行时钟线,由主机驱动,同步所有设备的通信节奏。
  • SDA(Serial Data):串行数据线,双向传输数据与地址,采用开漏输出设计,支持多设备共享。

不需要像UART那样通信时接地,一般情况已经共地了

ACK/NACK 的完整机制

I²C 通信中,发送方在每发送完 8 位数据后,会主动检测第 9 位的 ACK/NCK 信号;接收方则在第 9 个时钟周期驱动 SDA 来发出应答。

时序:空闲时总线保持高电平

起始信号:SCL为高时,SDA由高到低

数据发送期间:SCL为低时,SDA可以跳变,SCL为高时,SDA保持不变(每次传输以8bit为

基本单位)

数据发送完成后,由接收方发出应答信号(1bit的低电平),如果没有应答,通信强制停止。

停止信号:SCL为高时,SDA由低到高。

1.通信只能由主机发起。

2.时钟线永远由主机控制。

3.数据线传输数据时由发送方控制,应答信号由接收方控制

------主机写数据控制数据位,从机控制应答

------主机读从机控制数据位,主机控制应答

4.主机第一次发送的数据永远是7位从机地址+1位的读写标志(0写 1读)。

IIC典型时钟频率:100K ; 400K ;3.4M (指的上限)

http://www.jsqmd.com/news/563142/

相关文章:

  • Claude Code + PromptX 实战:如何让AI像你的最佳实习生一样写代码
  • 2026工字钢优质供应商推荐指南 - 优质品牌商家
  • 【Python MCP服务器开发终极模板】:20年架构师亲授生产环境零故障部署的7大黄金法则
  • 06. Flutter Hero动画实现:让界面过渡更加优雅
  • 2026年工业快速门应用白皮书冷链仓储领域深度剖析 - 优质品牌商家
  • TwinCAT3-UDP自定义协议实现高效点对点通信
  • 利用FakeRoot在未root安卓设备上为Termux模拟root环境
  • 基于ISSA-VMD-CNN-LSTM的轴承故障诊断探索
  • nginx中location匹配方式与优先级
  • 如何在A100显卡上快速部署Wan2.1图生视频API(含FastAPI配置详解)
  • 别再乱调灯光和材质了!UE5渲染性能优化的三个核心禁忌与正确姿势
  • springboot+vue基于web的酒店客房预订管理系统
  • Excel 中的病假统计:如何精确计算员工病假次数
  • nginx之动静分离
  • 【Xilinx】【ZynqMP】Petalinux 2020.1 QSPI Flash启动Linux:从分区规划到固件合成的避坑实践
  • uniapp分包优化实战:如何高效管理大型组件(如echart)以缩减主包体积
  • 嵌入式开发中映射表的高效应用实践
  • 5分钟搞懂MTMCT:多目标多摄像头跟踪的实战应用与避坑指南
  • 手把手教你在ROS机器人上跑通OpenPose手势控制(从摄像头驱动到消息发布)
  • 这个刚冲上 GitHub Trending 的 AI 插件,能帮你扒出全网过去 30 天最真实的讨论
  • COMSOL 中 CO₂ 封存模拟研究:构建真实地层洞察气体动态
  • OpenCore Legacy Patcher技术深度解析:非官方macOS升级的底层原理与实战指南
  • three-mesh-bvh 错误排查:解决常见问题和性能瓶颈的终极指南
  • Duet 3专用CANlib协议库:面向3D打印实时控制的确定性CAN通信框架
  • 2026京东网店转让平台发展白皮书 - 优质品牌商家
  • 【限时开源】我们刚交付的金融级Java AI推理框架(已支撑日均2.4亿次调用):支持模型热加载、QPS熔断、推理耗时SLA自动打标——源码解压密码将在72小时后失效
  • 保姆级教程:用Qt的QNetworkAccessManager实现网络延迟与带宽的简易测试工具(附完整源码)
  • 深入解析Linux中ASLR与-no-pie编译选项的安全与调试实践
  • Arduino蓝牙TPMS解析库:7字节广告数据逆向与嵌入式解码实践
  • Grok 4.1官网硬核技术拆解:情感智能与推理架构的平衡艺术深度实测