I2C基础入门

news2025/1/15 23:39:44

I2C参数

主从模式:

  • 主机
  • 从机

常见速率:

  • 普通模式(100kHz)
  • 快速模式(400kHz)
  • 快速模式+(1MHz)
  • 高速模式(3.4MHz)
  • 超高速模式(5MHz)

地址模式:

  • 7位地址模式
  • 10位地址模式

读写标志R/W :

  • 读写位是0,表示主机将要向从机写入数据
  • 读写位是1,则表示主机将要从从机读取数据

I2C协议数据传输时序

一个I2C信号包括:起始信号、地址数据信号,读写信号,应答信号,内容数据信号,应答信号,停止信号。其中起始信号与结束信号时序比较特殊,其他信号值“0”“1”时序都相同。
在这里插入图片描述

读时序

在这里插入图片描述

写时序

在这里插入图片描述

数据时序解析

在这里插入图片描述

  • 起始信号:当SCL 线在高电平期间 SDA 线从高电平向低电平切换。
  • 停止信号:当SCL线在高电平期间 SDA 线由低电平向高电平切换。
  • “0”“1”值信号:当SCL线在高电平期间,如果SDA一直为高电平表示数据“1”,一直为低电平时表示数据“0”。注意SCL为高电平时SDA不可变化。

注:SDA和SCL同时为高时,为IIC总线的空闲状态

数据传输实例

起始和结束信号查看SCL高电平期间的电平跳变。
数值查看SCL时钟高电平期间SDA的电平,SCL高电平期间SDA是高就是“1”,是低就是“0”。
在这里插入图片描述

从设备地址如何确定

以PCF8574芯片为例子

原理图

在这里插入图片描述

芯片地址表

每个I2C芯片都会有自己的地址表,这个芯片的地址A6~A3为固定值,A2 ~ A0根据外接电平确定,(Vss低电平,VDD高电平),根据原理图设备的地址为0100000b。即设备的7位的地址为20h。下表中address of PCF8574表示含读写信号的地址,如果发送8个字节地址:值=(7位的地址<<1)+ R/W
在这里插入图片描述

I2C总线下PCF8574模块-示例代码

参考:

详细介绍I2C
STM32硬件I2C与软件模拟I2C超详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

__cplusplus和extern “C“

文章目录 __cplusplus是什么extern "C"使用场景的示例通过MinGW编译及查看下目标文件中的符号用gcc编译器添加 -c选项 使my_handle.c文件编译后生成my_handle.o文件&#xff0c;这里的 -o是 output的意思nm命令 是GCC编译集合下最常用的查看目标文件中的符号的命令 -…

0601概述-react路由-react

1 SPA与MPA 1.1 简述 单页面应用和多页面应用是两种不同的 Web 应用程序架构。 单页面应用&#xff08;SPA&#xff09;是指在一个 HTML 页面中动态加载和渲染所有的应用程序内容&#xff0c;通过前端 JavaScript 操作来实现页面的变化和交互。SPA 不需要每次请求新的 HTML …

牛客刷题错题解析

以下是Video/Audio中会触发的事件的有&#xff1f; load play seeked abort 网址&#xff1a;https://www.nowcoder.com/questionTerminal/fc3b560267fd44e98d02a40a 方法&#xff1a;load() play() pause() 事件&#xff1a;play() playing() pause() seeked() seeking() abor…

Linux移植5.4版本内核:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(5.4版本内核)

Linux移植5.4版本内核&#xff1a;正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤&#xff08;5.4版本内核&#xff09; 文章目录 Linux移植5.4版本内核&#xff1a;正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤&#xff08;5.4版本内核&#xff09;1.出厂源…

浅理解JavaScript数组去重的方法(划重点),当面试官问如何实现数组去重时,你可以这样做...

文章目录 &#x1f4cb;前言&#x1f3af;什么是数组去重&#xff0c;运用场景是什么&#xff1f;&#x1f3af;常用的数组去重方法&#x1f9e9;使用 Set 对象&#x1f9e9;使用 Object&#xff08;对象、基于Hash哈希表&#xff09; 或 Map&#x1f9e9;使用 filter 方法与 i…

概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

深度学习中经常要对概率密度建模。对于多维度随机变量来说&#xff0c;这有些困难。概率化结构&#xff08;既图模型&#xff09;是处理这个问题的手段之一。这引出了两个问题。为什么建模困难&#xff1f;图模型怎样解决了这个困难&#xff1f; 关于这个问题&#xff0c;花书…

图片怎么压缩到200K以内,这3个图片压缩方法,简单有效

你没有遇到过上传图片到网站的时候&#xff0c;图片太大不能上传的情况&#xff1f;还有&#xff0c;许多报名照片要求小于200K&#xff0c;可是照片超过这个大小&#xff0c;应该如何压缩呢&#xff1f;下面我给大家带来3个图片压缩的方法&#xff0c;既能快速压缩图片大小&am…

深度学习技巧应用7-K折交叉验证的实践操作

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下深度学习技巧应用7-K折交叉验证的实践操作。K折交叉验证是一种机器学习中常用的模型验证和选择方式&#xff0c;它可以将数据集分为K个互斥的子集&#xff0c;其中K-1个子集作为训练集&#xff0c;剩下1个子集作为验…

Hive设置元数据支持中文显示

在hive中建外部表时遇见到这样一个问题&#xff0c;就是表字段的中文注释在desc 表结构时看不了&#xff0c;发现原来是Hive的元数据库没有设置支持中文显示 第一步&#xff0c;在元数据库metastore完成初始化后&#xff0c;再次登录MySQL [roothurys24 hurys_table_data]# m…

成功解决:OSError: [E050] Can’t find model ‘en_core_web_sm’.

成功解决OSError: [E050] Can’t find model ‘en_core_web_sm’. 问题描述 在安装spacy包之后&#xff0c;再加载’en_core_web_sm’语言模型时&#xff0c;报出OSError: [E050] Can’t find model ‘en_core_web_sm’. It doesn’t seem to be a Python package or a valid…

【Java】插入排序和希尔排序---图解超详细

目录 插入排序 插入排序的核心图解 希尔排序 希尔排序详细图解 插入排序 插入排序的交换精髓在于 每次随着i的扩大,i走过的路径都是有序的,这和冒泡的思想有异曲同工之处,冒泡是i走一次,数组的最后变成有序的,而插入排序是 插入排序是 i 在前面 j在后面 插入排序的核心图解…

C- 符号

文章目录 符号#ifdef-#endif\接续符转义旋转光标数字倒计时 单引号-双引号逻辑运算符&& ||短路 位运算符异或位运算最好使用定义好的宏左移右移 后置前置复杂表达式 取整0向取整(C中默认取整方式)floor地板取整ceilround 四舍五入 取模取余和取模一样吗? 运算符优先级…

两小时让你全方位的认识文件(一)

想必友友们在生活中经常会使用到各种各样的文件&#xff0c;那么我们是否了解它其中的奥秘呢&#xff0c;今天阿博就带领友友们深入地走入文件&#x1f6e9;️&#x1f6e9;️&#x1f6e9;️ 文章目录 一.为什么使用文件二.什么是文件三.文件的打开和关闭四.文件的顺序读写 一…

网页自动化工具DrissionPage

逛Github时偶然看到的开源项目&#xff0c;DrissionPage是一款新的基于 python 的网页自动化工具。 笔者已测试过&#xff0c;给大家推荐下。 项目地址&#xff1a;https://gitee.com/g1879/DrissionPage 安装测试 安装命令 pip install DrissionPage测试 from Drissio…

unity | 处理string常用的知识(持续更新)

一、转义字符和的用法 1.常规用法 我们现在有一行字&#xff0c;但是我对它的格式之类的有要求 例&#xff1a;天无绝人之路&#xff0c;条条道路通罗马。 我想打成&#xff1a; 天无绝人之路&#xff0c; 条条道路通罗马。 换行前&#xff0c;写法是&#xff1a; string s …

科海思—美国杜笙Tulsimer中国区总代理,制糖脱色树脂A-722

一、产品介绍 具有控制孔径的大孔强碱性Ⅰ型阴特种脱色用离子交换树脂 Tulsimer A-722是一款具有便于颜色和有机物去除的控制孔径的&#xff0c;专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-722 &#xff08;氯型&#xff09;专门应用于糖浆脱色。 Tulsimer A…

Python学习简记

常用数据类型 整数类型int 二进制以0b开头八进制以0o开头十六进制以0x开头 这里还有一个值得注意的点&#xff1a;python中的整型是“无限长”的&#xff0c;因此它可以表示任何数 浮点数 python中只有float作为浮点数&#xff0c;没有double 主要注意python中对浮点数与Decima…

Spring系统架构与主要概念

Spring系统架构与主要概念 Spring Framework系统架构Core Container 核心容器AOP 层数据层Web层测试层 业务逻辑Spring之前遇到的问题解决方案 Spring核心概念IOC&#xff08;Inversion of Control&#xff09;控制反转DI&#xff08;Dependency Injection&#xff09;依赖注入…

SRv6实践项目(四):基于YANG的配置下发

在本章节&#xff0c;主要是了解YANG是什么&#xff0c;以及基于YANG下发配置的工作原理&#xff1a; 1.什么是YANG 在介绍之前&#xff0c;为了给大家一个最直观的感受&#xff0c;我们打开yang工具&#xff0c;它被打包成一个容器了&#xff0c;可以轻松的使用&#xff0c;…

完美解决丨1. **`SyntaxError: invalid syntax`**

SyntaxError: invalid syntax 因为没有符合语法要求&#xff0c;导致报错。 解决办法&#xff1a; 语法错误的原因主要是代码的风格&#xff0c;例如&#xff1a; 左括号或者右括号没有配对&#xff1b;左括号或者右括号没有放在语句的正确位置&#xff1b;缺少冒号&#xff1…