news 2026/10/22 2:38:34

IIC基础常识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IIC基础常识

特点:只用两根线,就能让主控和多个外设通信
是种同步,半双工,串行通信协议

结构特点

  • 电气特点:SCL和SDA都是开漏/开集电极结构,必配上拉电阻。
  • I2C设备只能主动把线拉低,不能主动输出高电平。
  • 当没有器件拉低总线时,线上的高电平是靠上拉电阻提供的

IIC通信过程是怎么进行的

一帧典型:

  1. 主机发送起始信号
  2. 主机发送从机地址
  3. 主机发送读写方向位
  4. 从机返回应答
  5. 主机和从机传输数据
  6. 每发完1字节,对方返回一次应答
  7. 最后发送停止信号

起始信号,停止信号,应答信号是什么

起始信号Start

当SCL保持高电平时,SDA从高电平跳变到低电平,这表示起始信号

  • 时钟线高
  • 数据线由高变低
  • 表示通信开始
停止信号Stop

当SCL保持高电平,SDA从低电平跳变到高电平,表示停止信号

  • 时钟线高
  • 数据线低变高
  • 表示通信结束
应答信号ACK

I2C按字节传输,在数据传输阶段,每发完8位数据,接收方都要在第9个时钟给出应答。

  • 拉低SDA:表示ACK
  • 不拉低SDA:表示NACK

IIC的读写区分

先写地址,再重新开始读数据

  • 0 :写
  • 1:读
  1. 主机给器件写数据
    • 起始
    • 从机地址 + 写位
    • 应答
    • 寄存器地址或存储地址
    • 应答
    • 数据
    • 应答
    • 停止
  2. 主机从器件读数据
    • 起始
    • 从机地址 + 写位
    • 应答
    • 先告诉对方读哪个寄存器地址
    • 重启始
    • 从机地址 + 读位
    • 应答
    • 从机发送数据
    • 主机应答/非应答
    • 停止

为什么IIC可以挂多个设备

因为IIC是靠地址区分设备的
在同一条总线上可以同时挂多个从机
主机发送通信时,先发送从机地址,只有地址匹配的那个设备才会响应,其他设备保持安静
优势:

  • 节省引脚
  • 布线简单
  • 一个主控能挂多个外设
    限制:
    同一条总线上,设备地址不能冲突

IIC常见速度模式

  • 标准模式:100kHz
  • 快速模式:400KHz
  • 快速模式增强:1MHz
  • 高速模式:3.4MHz

STM32使用IIC

硬件IIC

HAL有时用7位地址左移后的格式,根据读写函数自动置读写位

//写 HAL_I2C_Mem_Write(&hi2c1, dev_addr, mem_addr, I2C_MEMADD_SIZE_8BIT, buf, len,1000); //读 HAL_I2C_Mem_Read(&hi2c1, dev_addr, mem_addr, I2C_MEMADD_SIZE_8BIT, buf, len, 1000);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 9:53:08

三电极体系详解:结构原理、电极选型与实操故障排查

做电化学的人,无论你是测电池材料、研究腐蚀,还是开发传感器,绕不开的一个话题就是“三电极体系”。我刚接触这个体系的时候也很懵:明明两电极也能测出电流电压,为什么文献里都用三个电极?三个电极到底谁负…

作者头像 李华
网站建设 2026/10/19 19:11:39

从解压到跑通:艺诚美业管理系统Zip包完整解析与改造

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 20:53:23

重读哈利波特:姓名、预言与魔法物件里的隐藏密码

我第一次把这七本书连在一起重读时,感受和单本阅读完全不同。你明明已经知道结局,却会被第一本里的某句话、某样物件、某个名字击中心事。那不是传统意义的“悬念”,更准确的词是“秘密”——所有答案早就摊在读者面前了,只是第一…

作者头像 李华
网站建设 2026/10/16 5:33:45

【C语言】操作符

目录 进制 字节 原码、反码与补码 移位操作符 位操作符 按位取反操作符 sizeof 条件操作符 逗号表达式 隐式类型转换(整形提升) 算术转换 操作符的优先级、结合性 进制 进制也就是进位计数制,是人为定义的带进位的计数方法。 一、…

作者头像 李华
网站建设 2026/10/19 7:19:14

基于PCA9422和STM32F746ZG的低功耗便携设备电源管理设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华