• 【STM32】入门(六):I2C协议


    【STM32】STM32单片机总目录

    1、常见I2C设备

    EEPROM
    温湿度传感器,例如:AHT10
    电量计,例如:TI的BQ34Z100
    日历时钟
    模数或数模转换器

    2、I2C总线结构

    • I2C只有两根线:数据线SDA和时钟线SCL;
    • SDA 和 SCL 都是双向线路
    • I2C设备并联在I2C总线上
    • 每个设备都有一个地址,一根总线上的设备地址不能有重复的
    • 地址长度为7位或10位
    • 7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址,并且总线电容不超过400PF
    • I2C设备分为主机、从机
    • 同一总线上可以有多个主机(控制器)
    • 通讯速率:标准模式100kbit/s 、快速模式 400kbit/s、高速模式3.4Mbit/s
    • 7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址
    • 10位I2C总线可以挂接更多的10位I2C设备.
      在这里插入图片描述
      在这里插入图片描述

    3、协议层

    传输协议分类:读、写、复合

    3.1 读操作

    在这里插入图片描述
    阴影部分:主机 发送
    非阴影部分:从机 发送

    S:起始
    SLAVE ADDRESS:从机地址
    读写标志:这里是‘1’表示读
    第一个A:从机应答
    DATA:从机发来的数据
    第二个A:主机应答
    A上一杠:非应答
    P:停止

    3.2 写操作

    在这里插入图片描述
    阴影部分:主机 发送
    非阴影部分:从机 发送

    S:起始
    SLAVE ADDRESS:从机地址
    读写标志:这里是‘0’表示写
    第一个A:从机应答
    DATA:主机发来的数据
    第二个A:从机应答
    A上一杠:非应答
    P:停止

    3.3 复合操作

    复合操作就是一次性可以执行多次读、多次写,并且读和写是交替进行。
    在这里插入图片描述
    阴影部分:主机 发送
    非阴影部分:注意——此时非阴影不一定都是从机发送,而是根据读写位来决定,后面的数据是主机发送还是从机发送。

    S:起始
    SLAVE ADDRESS:从机地址
    读写标志:这里可以是‘0’表示写、或者‘1’表示读
    P:停止

    3.4 起始、停止信号

    在这里插入图片描述
    当时钟线SCL 是高电平时,数据线SDA 线从电平向电平切换,表示通讯的起始
    当时钟线SCL 是高电平时, 数据线SDA线由电平向电平切换,表示通讯的停止

    3.5 从机地址

    从起始位开始的第一个字节的头 7 位组成了从机地址,I 2 C 总线委员会协调 I 2 C 地址的分配,几种特别的地址如下:
    在这里插入图片描述

    3.6 数据有效

    在这里插入图片描述
    时钟线SCL为电平的时候,数据线SDA才有效

    SDA 为高电平时表示数据“1”,
    SDA 为低电平时表示数据“0”。
    
    • 1
    • 2

    时钟线SCL为电平的时候,数据线SDA 无效( 一般在这个时候 SDA 进行电平切换)

    3.7 响应

    在这里插入图片描述

    响应包括“应答 (ACK)”和“非应答 (NACK)”两种信号。
    无论主、从机,作为数据接收端时,接收到 I2C 传输的一个字节数据或地址后:

    若希望对方继续发送数据,则需要向对方发送“应答 (ACK)”信号,
    	发送方会继续发送下一个数据;
    若接收端希望结束数据传输,则向对方发送“非应答 (NACK)”信号,
    	发送方接收到该信号后会产生一个停止信号,结束信号传输。
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    LeetCode琅琊榜第二十层-二进制求和
    windows任务栏卡死,重启也没用
    问题求解与实践-简单数值计算
    二十一、商城 - 商品录入-KindEditor 编辑器(9)
    [ansible] playbook运用
    【Android笔记53】Android之实现应用程序中的画中画效果
    【基本数据结构 三】线性数据结构:栈
    一道好题——分治
    docker 构建filebeat镜像
    手把手教你Nginx常用模块详解之ngx_http_gzip_module(四)
  • 原文地址:https://blog.csdn.net/u010168781/article/details/126237813