Linux i2c工具——i2c_tools

news2025/1/19 14:39:14

1 简介

i2c-tools是一个用于处理I2C(Inter-Integrated Circuit)总线的工具集,它在Linux环境中广泛使用。这个工具集包含了一系列命令行工具,用于在I2C总线上执行各种操作,例如扫描设备、读取/写入寄存器、检测设备等。可以通过该工具在linux命令行直接修改或读取i2c设备的数据,省去了代码编译烧录的过程,在调试开发阶段非常实用。

2 安装

在大多数Linux发行版中,可以通过系统的软件包管理器来安装i2c-tools。以下是一些常见的Linux发行版中安装i2c-tools的方法:

Debian/Ubuntu系列:
使用apt命令安装:

sudo apt-get update
sudo apt-get install i2c-tools

Red Hat/CentOS系列:
使用yum命令安装:

sudo yum install i2c-tools

Fedora:
使用dnf命令安装:

sudo dnf install i2c-tools

Arch Linux:
使用pacman命令安装:

sudo pacman -S i2c-tools

在其他Linux发行版中:
可以尝试使用适用于你的发行版的包管理器来安装i2c-tools。如果没有可用的软件包,你也可以从源代码编译并安装i2c-tools。通常,可以在i2c-tools的官方网站或者对应的代码仓库中找到源代码和安装说明。在利用类似Yocto等构建工具构建自己的Linux发行版时,也可以选择将i2c_tools集成进去。
安装完成后,你就可以在终端中使用i2c-tools提供的命令了。

3 用法

以下是i2c-tools中一些常用的命令:

  1. i2cdetect:用于扫描I2C总线上连接的设备。可以使用以下命令扫描所有可能的I2C设备地址:
    i2cdetect -y <bus_number>

    其中, <bus_number> 是I2C总线的编号。

  2. i2cget:从指定设备的寄存器中读取数据。语法如下:
    i2cget -y <bus_number> <device_address> <register_address> [data_type]

    其中,<device_address> 是设备的I2C地址,<register_address> 是要读取的寄存器地址,[data_type] 是可选的数据类型,如b(byte)、w(word)等,默认是b

  3. i2cset:向指定设备的寄存器中写入数据。语法如下:
    i2cset -y <bus_number> <device_address> <register_address> <value> [data_type]

    其中,<value> 是要写入的数据值。

  4. 其他工具:除了上述命令外,i2c-tools还包括其他一些命令,如i2cdump、i2cprobe等,可以根据具体需要选择使用。

请注意,在使用这些命令之前,确保你的系统已经加载了I2C总线驱动程序,并且你有足够的权限来访问I2C总线(通常需要root权限或者添加到i2c用户组)。

  • 使用i2cdetect -y 1来查看i2c总线1上的设备,可以看到挂载在i2c总线1上的设备地址为0x25
    在这里插入图片描述
  • 使用i2cget -y 1 0x25 0x00来读取i2c总线1上地址为0x25的设备的0x00寄存器,返回的值为0x90
    在这里插入图片描述

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

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

相关文章

Copilot for Microsoft 365 扩充新增 16 种语言

最近&#xff0c;微软公司发布公告&#xff0c;进一步扩大 Copilot for Microsoft 365 语言支持&#xff0c;新增 16 种&#xff0c;支持的语言总数达到 25 种。 新支持的语言如下&#xff1a; 阿拉伯语 捷克语 丹麦语 荷兰语 芬兰语 希伯来语 匈牙利语 韩语 挪威语&am…

LLama3大模型本地部署 仅需6步完成对话模型本地安装部署。附赠ui配置、第三方微调模型、中文模型下载地址

本篇分为三部分 一&#xff1a;6步完成llama3大模型本地部署 二&#xff1a;8步完成llama3可视化对话界面安装 三&#xff1a;微调模型、中文模型下载资源分享 一、LLama3 大模型本地部署安装 首先去mata官网下载ollama客户端 Ollama 选择合适的操作系统平台后点击dowload按钮…

车规级低功耗汽车用晶振SG-9101CGA

车规级晶振SG-9101CGA属于爱普生9101系列&#xff0c;是一款可编程晶振。SG-9101CGA车规级晶振采用2.5x2.0mm封装&#xff0c;利用PLL技术生产&#xff0c;此款振荡器的频率范围从0.67M~170MHZ任一频点可选&#xff0c;步进1ppm&#xff0c;采用标准CMOS输出&#xff0c;最大输…

你知道C++多少——默认成员函数

&#x1f308;个人主页&#xff1a;小新_- &#x1f388;个人座右铭&#xff1a;“成功者不是从不失败的人&#xff0c;而是从不放弃的人&#xff01;”&#x1f388; &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f3c6;所属专栏&#xff1…

临时邮箱API发送邮件的安全性?如何保障?

临时邮箱API发送邮件的步骤有哪些&#xff1f;设置邮箱API方法&#xff1f; 电子邮件作为一种重要的通信方式&#xff0c;而临时邮箱API作为一种新兴的邮件发送技术&#xff0c;其安全性更是成为大家关注的焦点。那么&#xff0c;临时邮箱API发送邮件的安全性究竟如何呢&#…

本地vite启动的vue项目使用nginx代理

前提&#xff1a; 必须在同一网段或者相同的局域网&#xff01;&#xff01;&#xff01; nginx下载通道&#xff1a; https://nginx.org/en/download.html 步骤&#xff1a; 1、最好下载稳定版本&#xff1a; 2、下载后直接解压&#xff08;注意&#xff1a;解压后不要放…

【代码随想录37期】 第一周总结

周末再写一遍 【代码随想录37期】Day01 二分查找 移除元素 【代码随想录37期】Day02 有序数组的平方、长度最小的子数组、螺旋矩阵Ⅱ 【代码随想录37期】Day03 移除链表元素、设计链表、反转链表 【代码随想录37期】Day04 两两交换链表中的节点、删除链表的倒数第N个节点、链…

Baidu Comate智能编码助手:AI编程时代提升效率的好帮手

目录 写在前面一、如何安装二、如何使用场景需求体验步骤 三、AI 编程实战指令功能插件功能知识库功能 四、问题建议五、体验总结&#x1f680;写在最后 写在前面 Baidu Comate 是基于文心大模型的 AI编程工具&#xff0c;它结合百度积累多年的编程现场大数据和外部优秀开源数据…

JavaWeb文件上传/下载(Servlet)

效果 文件下载 文件上传 项目概述 Jakarta EE9&#xff0c;Web项目 项目文件结构 0 maven依赖&#xff0c;资源文件 <!-- lombok插件--> <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId&g…

proteus示波器不弹出来

运行后示波器没有弹出来 点击调试&#xff08;Debug&#xff09;在点击Digital Oscilloscope 完成

[OpenGL高级光照] 阴影改善

目录 一 阴影失真 二 阴影改善 2.1 减小片段深度值 2.2 降低纹理 2.3 注意事项 三 消除Repeat的问题 3.1 让裁剪矩阵的立方体变大 ​3.2 利用采样范围重置 四 精度问题 本章节源码 点击此处 一 阴影失真 在上一篇中,实现了阴影效果之后,但是我们会发现阴影效果中地面…

Linux基础之进程的基本概念

目录 一、进程的基本概念 1.1 什么是进程 1.2 PCB的概念 1.3 进程的查看 1.3.1 查看进程方式一 1.3.2 查看进程的方式二 1.4 父进程与子进程 一、进程的基本概念 1.1 什么是进程 进程是什么&#xff1f; 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的…

GENRE

1、整体设计 该工作&#xff08;GENRE&#xff09;在新闻推荐的场景下&#xff0c;用 LLM 构造了三个不同的prompts&#xff0c;分别来进行新闻摘要的改写&#xff0c;用户画像的构建&#xff0c;还有样本增强。 2、分模块介绍 摘要改写&#xff1a;把新闻的title&#xff0c;…

Golang | Leetcode Golang题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; func largestRectangleArea(heights []int) int {n : len(heights)left, right : make([]int, n), make([]int, n)for i : 0; i < n; i {right[i] n}mono_stack : []int{}for i : 0; i < n; i {for len(mono_stack) > 0 &&am…

亚信安慧AntDB新篇章:数据库技术飞跃

随着大数据时代的到来&#xff0c;对数据库的需求愈发强烈。在这一背景下&#xff0c;国产数据库逐渐崭露头角&#xff0c;亚信安慧AntDB作为重要的代表产品之一正积极参与到激烈的市场竞争中。亚信安慧AntDB不仅追求技术的革新和突破&#xff0c;同时也致力于满足用户日益增长…

国内智能搜索工具实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

数据与结构--堆

堆 堆的概念 堆&#xff1a;如果有一个关键码的集合K{k0,k1,k2,…,kn-1}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足ki<k2i1且ki<k2i2&#xff08;或满足ki>k2i1且ki>k2i2&#xff09;&#xff0c;其中i0,1,2,…

综合性练习(验证码案例)

目录 一、需求 二、准备工作 三、约定前后端交互接口 1、需求分析 2、接口定义 四、Hutool工具介绍 1、引入依赖 2、测试使用Hutool生成验证码 五、实现服务器端代码 代码解读&#xff1a; 六、调整前端页面代码 七、运行测试 随着安全性的要求越来越高&#xff0c…

数据库 MySQL 四种事务隔离级别代码演示 -- 读未提交;读已提交;可重复读;串行化

前提 # 设置数据库隔离级别 SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别;# 查询事务隔离级别 select transaction_isolation;事务处理的分离水平对应的数据整合情况&#xff1a; 隔离级别非提交读取&#xff08;脏读&#xff09;不可重复读取幻读READ UNCOMMITED√√√…

【JVM】Class文件的格式

目录 概述 Class文件的格式 概述 Class文件是JVM的输入&#xff0c;Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础。 1:Class文件是一组以8字节为单位的字节流&#xff0c;各个数据项目按顺序紧凑排列 2:对于占用空间大于8字节的数据…