【硬件外设使用】——I2C

2023-05-16

【硬件外设使用】——I2C

  • I2C基本概念
  • I2C通信协议
  • I2C使用方法
    • pyb.i2c
    • machine.i2c
  • I2C可用的传感器

I2C基本概念

I2C是"Inter-Integrated Circuit"的缩写,也被称为TWI (Two Wire Interface)。

它是一种串行通信协议,用于连接多个设备或组件。

I2C协议使用两根总线线(数据线SDA和时钟线SCL)进行通信。它允许多个设备连接到同一个总线上,并通过独特的地址进行标识。I2C通信协议最初由飞利浦公司开发,现在广泛应用于嵌入式系统、传感器和其他电子设备中。I2C协议具有高速传输、简单灵活和可靠性高等优点。

在这里插入图片描述

I2C通信协议

I2C通信协议是一种串行通信协议,在通信中使用两根总线线(数据线SDA和时钟线SCL)。下面是I2C通讯的基本原理:

  1. 时钟同步:I2C总线上的所有设备都遵循同一个时钟信号,这意味着当主设备发送时钟脉冲时,所有连接到I2C总线上的设备都会响应。

  2. 数据传输:I2C协议是一种基于帧的协议,每个数据帧包含8位数据,其中包括7位地址和1位读/写标志位。主设备通过向从设备发送地址将其选中,并指定操作是读还是写操作。之后,数据可以被传输到或从从设备接收。

  3. 确认应答:在每个数据字节传输后,接收方必须向发送方返回一个确认应答信号以指示成功接收数据。任何设备都可以发出一个非确认应答,以表明没有成功接收数据。

  4. 多主机操作:I2C协议支持多主机操作,允许多个主机设备轮流控制I2C总线。 主机设备与其他设备之间的优先级基于其发送的起始条件的优先级。

  5. 时钟速率:I2C协议支持四种不同的时钟速率,最高可达400kHz。时钟速率越高,数据传输速度越快,但是会增加线路的电磁干扰,从而降低了可靠性。

I2C通信协议简单、可靠,并被广泛用于各种电子设备之间的通信和控制。

I2C使用方法

pyb.i2c

pyb.i2c是MicroPython中的一个模块,用于控制I2C总线。通过使用pyb.i2c模块,可以轻松地与其他设备进行通信,例如传感器、电机驱动器和显示屏等。

MicroPython的pyb.i2c模块提供了一些常用的函数,用于发送和接收数据,以及设置I2C总线的速度和地址等参数。以下是一些常用的pyb.i2c函数:

  • init(): 初始化I2C总线。
  • send(): 发送数据到指定设备。
  • recv(): 从指定设备接收数据。
  • mem_write(): 将数据写入指定设备的指定寄存器。
  • mem_read(): 从指定设备的指定寄存器读取数据。

pyb.i2c模块还提供了其他一些函数,可以根据需要进行调用。使用pyb.i2c模块,可以轻松地实现多种应用程序,例如温度传感器、加速度计和压力传感器等。

machine.i2c

machine.i2c是MicroPython中的一个类,用于控制I2C总线。它与pyb.i2c非常相似,但是machine.i2c更加通用,因为它不依赖于特定的硬件平台。

通过使用machine.i2c类,可以轻松地与其他设备进行通信,例如传感器、电机驱动器和显示屏等。与pyb.i2c相同,machine.i2c类也提供了一些常用的方法,例如read()write()方法,用于读写数据。

以下是一些常用的machine.i2c方法:

  • init(): 初始化I2C总线。
  • readfrom(): 从指定设备读取数据。
  • writeto(): 将数据写入指定设备。
  • writeto_mem(): 将数据写入指定设备的指定寄存器。
  • readfrom_mem(): 从指定设备的指定寄存器读取数据。

machine.i2c类还提供了其他一些方法,可以根据需要进行调用。使用machine.i2c类,可以轻松地实现多种应用程序,例如温度传感器、加速度计和压力传感器等。

I2C可用的传感器

下面是一些常用的基于I2C总线的传感器:

  1. 温度传感器:例如DS18B20、LM75、TMP102、AM2320等。它们通常具有高精度和快速响应时间。
    在这里插入图片描述

  2. 加速度计:例如ADXL345、LSM303等。它们通常用于测量物体在X、Y、Z三个方向上的加速度。
    在这里插入图片描述

  3. 压力传感器:例如BMP180、BMP280等。它们通常用于测量大气压力和海平面高度等相关参数。
    在这里插入图片描述

  4. 光照传感器:例如TSL2561、BH1750等。它们通常用于监测环境中的光强度和亮度。
    在这里插入图片描述

  5. 湿度传感器:例如DHT11、DHT22、HTU21D等。它们通常用于测量周围环境的相对湿度和温度。
    在这里插入图片描述

以上只是一些常见的I2C传感器,实际上,还有很多其他类型的传感器可以使用I2C进行通信,例如气体传感器、距离传感器、心率传感器等。
I2C总线具有通用性和可扩展性,可以灵活地满足各种不同应用的需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【硬件外设使用】——I2C 的相关文章

  • Hadoop--HDFS的API环境搭建、在IDEA里对HDFS简单操作

    在windows系统安装hadoop 首先下载hadoop xff1a hadoop 3 1 4 tar gz 解压到C Hadoop目录下 然后下载winutils xff1a https github com cdarlint winu
  • python初学入门——————输入输出语句

    文章目录 一 输出语句1 格式化输出2 f 格式化字符串3 转义字符3 结束符 二 输入语句 一 输出语句 打印语句所使用的函数为print span class token keyword print span span class to
  • 判断一个字符串是不是回文序列

    上两周学习栈和队列的时候老师布置了一个上机作业 xff0c 题目非常的简单 xff0c 用最基本的栈和队列都能做到 xff0c 今天分享给大家 xff0c 题目是这样的 判断一个字符串是不是回文序列 xff0c 例如 aba adda 都是
  • FFMPEG编译裁剪移植

    FFMPEG 编译裁剪移植 author xff1a lyn date xff1a 2022 09 26 version ffmpeg4 1 3 1 ffmpeg文件结构说明 2 ffmpeg交叉编译 3 ffmpeg移植问题 4 参考资料
  • FFMPEG mp4封装实现

    FFMPEG mp4录像 author xff1a lyn date xff1a 2022 09 28 version ffmpeg4 1 3 1 mp4数据结构 2 ffmpeg mp4封装实现 3 mp4函数调用关系 4 参考资料 1
  • IMX8MP录像功能测试

    IMX8MP录像功能测试 目录 1 开发环境搭建 2 编译hello world 3 录像功能测试 4 参考资料 1 开发环境搭建 1 1 开发工具链和源码 开发环境的搭建按照手册上的命令搭建即可 xff0c 可以更换其中的安装目录 xff
  • 将网页制作成chm文件

    将网页制作成chm文件 1 安装工具 工具自行安装 爬站利器 xff0c Teleport Ultra 生成chm文件的工具 xff0c WinChm chm文件读取工具 xff0c ExtraChm 2 导出 导出网站文件 xff0c 使
  • Alsa交叉编译

    alsa交叉编译 下载源码 需要编译两个库 首先编译lib库 configure span class token parameter variable host span span class token operator 61 span
  • 免费天气api适合商用吗_4个免费的天气提供商API开发天气应用

    免费天气api适合商用吗 提供天气信息的Android应用在Play商店中很常见 此外 xff0c Weather应用程序和小部件是下载次数最多的项目之一 当需要开发天气应用程序时 xff0c 有必要使用天气提供程序作为天气信息的来源 这些
  • alsa命令和配置

    alsa命令和配置 常用命令 span class token comment 调节音量 span span class token comment amixer h span Available options h help this s
  • alsa音频调试

    alsa音频调试 1 找不到配置项 在amixer controls指令找不到Master Playback Volume配置项 xff0c 查阅资料可知 softval类型有些需要配置一次才能出现 xff0c 执行指令 在etc asou
  • 字符串文本匹配神器———Java正则表达式

    什么是正则表达式 xff1f 正则表达式是一种特殊的字符串模式 xff0c 用于匹配一组字符串 xff0c 就好比用模具做产品 xff0c 而正则就是这个模具 xff0c 定义一种规则去匹配符合规则的字符 为什么要学正则表达式 对于正则表达
  • Android打印调用堆栈(dump backtrace)的方法

    1 为什么要打印函数调用堆栈 xff1f 打印调用堆栈可以直接把问题发生时的函数调用关系打出来 xff0c 非常有利于理解函数调用关系 比如函数A可能被B C D调用 xff0c 如果只看代码 xff0c B C D谁调用A都有可能 xff
  • Ubuntu Linux通过apt库安装WireShark

    华灯璀璨1 秒前 回复 根据文章Ubuntu安装wireshark 小菜鸟要高飞的博客 CSDN博客写成了脚本 脚本如下 xff1a bin bash 编译环境配置 sudo apt get install bison flex libpc
  • (C++)1002 A+B for Polynomials

    笔记 xff1a 1 两个不为0的数相加可能为0 2 浮点数的比较方法 3 输出的时候格式怎么办 本题空格放在哪有门道 4 不需要三个数组 xff0c 一个就可以了 xff0c 第二个 数组 输入的时候直接加在第一个上面 include l
  • 如何轻松把mysql数据表对齐?!正解在这儿

    初学数据库 xff0c 很多小白就会发现自己的数据表总是对不齐 xff1a 怎么对齐 xff1f 只需要输入时 xff1a charset gbk xff1b 就ok了 简单易操作 xff0c 别问我怎么知道的 xff0c 百度是个好东西
  • websocket+定时任务实现实时推送

    websocket 43 定时任务实现实时推送 TaskScheduler定时任务实现websocket 43 定时任务实时推送 有时候业务要求websocket连接后 xff0c 服务端实时每隔一段时间就将数据推送给客户端进行响应 xff
  • Linux系统下运行bash脚本提示/usr/bin/env: ‘bash\r’: No such file or directory

    1 问题现象 在Linux系统中使用 searchsploit 启动 xff0c 运行失败 xff0c 并报错提示如下所示 xff1a 2 错误原因 xff1a 主要是应用bash后面多了 r 字符的原因 xff0c 在Linux终端下 x
  • 面试:每发送一个http请求就要建立一个tcp连接吗(非持久连接/持久连接)

    非持久连接 xff1a HTTP 1 0 中 的首部字段Connection 默认值为 close xff0c 即每次请求都会重新建立和断开 TCP 连接 持久连接 xff1a HTTP 1 1 中 的首部字段Connection 默认值为
  • 实例:用C#.NET手把手教你做微信公众号开发(16)--事件消息处理之点击菜单2

    微信用户点击菜单时 xff0c 会通过微信服务器转发两种事件给你的服务器 xff0c 一种是拉取消息时的事件推送 xff1b 另一种是跳转链接时的事件推送 上篇讲了第一种 xff0c 本篇先讲第二种 一 消息格式 推送XML数据包示例 xf

随机推荐

  • 合理清除AlibabaProtect进程

    1 在 任务管理器 的 进程选项中 xff0c 找到AlibabaProtect进程 xff0c 单击后 xff0c 右键选择 打开文件所在位置 xff0c 找到该进程对应文件所在位置 xff0c 并将其上级目录做成 桌面快捷方式 xff0
  • Sublime Text 4安装使用(完整教程)

    Sublime Text 4安装使用 安装使用语言汉化 OK啦 xff0c 觉得有用的点个赞吧 xff01 xff01 xff01 写这篇博客的意义希望能够将我走过的路 踩过的坑记录下来 在后来在遇到的时候能够更好的翻阅 未经允许 xff0
  • Xlaunch启动后无法显示图形界面,提示connection refused

    解决方案 xff1a 重启远程端
  • 【PR】零基础快速入门教程

    PR 零基础快速入门教程 PR xff08 Premiere xff09 能做什么 xff1f PR欢迎界面及新建项目工作区及窗口说明导入文件建立序列视频剪辑添加字幕导出视频 使用软件 xff1a Premiere2020 新年卷起来 xf
  • 【PR】源窗口

    PR 源窗口 源窗口粗剪源窗口按钮功能标记按钮出入点相关插入与覆盖插入覆盖 导出帧 使用软件 xff1a Premiere2020 源窗口粗剪 我们手上可能有一些很长的视频 xff0c 但是我就想要其中的几段 xff0c 这个时候粗剪就很方
  • 【PR】时间轴窗口

    PR 时间轴窗口 时间轴窗口工具按钮 视频轨道切换轨道输出切换同步锁定目标切换轨道锁定轨道对插入和覆盖进行源修补 工具按钮 音频轨道静音轨道独奏轨道画外音录制 时间轴窗口基础操作添加轨道查看完成视频和音频缩放轨道删除轨道 添加关键帧 使用软
  • 【PR】来,一起做一个简单的剪辑视频吧

    PR 来 xff0c 一起做一个简单的剪辑视频吧 前言新建项目导入素材创建序列裁剪视频视频导入序列 图片背景音频处理多视频素材处理添加字幕导出上传学了上面能做到什么程度 xff1f 可以看一下我用上面的方法做出成品 新手教程哈 xff0c
  • 【PR】视频剪裁

    PR 视频剪裁 把素材文件导入PR问题1 xff1a 删除多余部分 xff08 主要是录制范围 xff09 导出视频 xff08 问题1解决方案看我 xff09 问题2 导出的视频还有黑边导出视频 xff08 问题2解决方案看我 xff09
  • 【PR】图片处理

    PR 图片处理 导入图片将图片文件拖拽进时间轴点击图片选择效果 xff08 时间轴上的那个条 xff09 改变图片位置修改图片大小图片不透明度旋转与锚点 xff08 视频层 xff09 图层 PR不光能导入视频 xff0c 还可以导入图片
  • 【PR】音频处理及过度效果

    PR 音频处理及过度效果 导入音频插入时间轴中的A轨道 xff08 声音轨道 xff09 音频处理调整音量 音频剪贴音频过度效果淡入 xff0c 淡出 xff0c 过度淡入淡出过度 工具按钮 音频轨道 xff08 不充内容 xff0c 可以
  • 实例:用C#.NET手把手教你做微信公众号开发(17)--公众号主动给粉丝发信息之模板消息

    前面讲了那么多 xff0c 都是微信用户主动向公众号发送信息或某个操作触发公众号响应并给予用户回复 如果在微信用户没有主动发起互动的情况下 xff0c 公众号应该如何向微信用户发送消息呢 xff1f 本篇给出一种解决方案 xff1a 模板消
  • 【PR】视频转场与视频粗剪

    PR 视频转场与视频粗剪 视频转场转场使用方法 粗剪与标记 xff08 多个视频合并的小技巧 xff0c 可以不看 xff09 粗剪标注 今天我们来搞一下视频 xff0c 主要是搞一下转场效果 转场 xff1a 让不同场景的画面间过渡更加自
  • 【PR】字幕处理

    PR 字幕处理 添加字幕新建字幕基础设置多字幕添加 其他调整基础效果 效果控件 字幕特效 PR2022版本有字幕插件 xff0c 可以更轻松的处理字幕 我用的是PR2020 xff0c 没有这个功能 xff0c 只能一个一个添加 xff0c
  • 【外设零基础通用教程】GPIO 上

    外设零基础通用教程 GPIO 上 视频 文章结构外设 xff1a GPIO代码编写GPIO输入方法GPIO输出方法 视频地址 xff1a 咸鱼的外设通用教程之GPIO 本教程适合 xff1a 硬件零基础纯小白 上手了硬件不知从何开始 xff
  • 【外设零基础通用教程】GPIO 下

    外设零基础通用教程 GPIO 下 使用方法GPIO 值输入读取值输出设置值 GPIO输入输出应用GPIO输入应用GPIO输出应用文档使用 理论补充输出方式推挽输出开漏输出 上篇连接 xff1a 外设零基础通用教程 GPIO 上 xff0c
  • 硬件外设使用方法——GPIO

    硬件外设使用 GPIO用法 GPIO基本概念GPIO应用pyb与micropython什么是pyb什么是micropythonpyb与micropython关系 GPIO在micropython中的用法什么是pyb库pyb库中的GPIO用法
  • 【硬件外设使用】——ADC

    硬件外设使用 ADC ADC基本概念ADC使用方法pyb adcmachine adc ADC可用的传感器 ADC基本概念 ADC是模拟数字转换器 xff08 Analog to Digital Converter xff09 的缩写 xf
  • 【硬件外设使用】——DAC

    硬件外设使用 DAC DAC基本概念DAC使用方法pyb dacmachine dac DAC可用的传感器 DAC基本概念 DAC是数字模拟转换器 xff08 Digital to Analog Converter xff09 xff08
  • 【硬件外设使用】——PWM

    硬件外设使用 PWM PWM基本概念PWM使用方法pyb pwm方法属性 machine pwm方法属性 PWM可用的传感器 PWM基本概念 PWM是脉冲宽度调制 xff08 Pulse Width Modulation xff09 的缩写
  • 【硬件外设使用】——I2C

    硬件外设使用 I2C I2C基本概念I2C通信协议I2C使用方法pyb i2cmachine i2c I2C可用的传感器 I2C基本概念 I2C是 34 Inter Integrated Circuit 34 的缩写 xff0c 也被称为T