Linux-笔记 i2c-tools

2024-05-09 23:21
文章标签 linux i2c tools 笔记

本文主要是介绍Linux-笔记 i2c-tools,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、i2c-tools介绍

1、在日常linux开发中,有时候需要确认i2c硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试I2C总线的工具——i2c-tools,i2c-tools原理是通过操作/dev 路径 i2c-n设备文件完成,因此kernel必须开启了 CONFIG_I2C_CHARDEV 配置,否者会报找不到节点。在设备上也可以通过目标板终端输入:ls /sys/bus/i2c/devices查看i2c设备节点信息。看到的i2c-0,i2c-1,指的是i2c总线节点,i2c从设备都是挂载在总线节点下的。

2、源码获取:Index of /pub/software/utils/i2c-tools/

3、包含工具

i2cdetect:用于扫描 i2c 总线上的设备,并显示地址。
    i2cset:设置i2c设备某个寄存器的值。
    i2cget:读取i2c设备某个寄存器的值。
    i2cdump:读取某个i2c设备所有寄存器的值。

二、测试方法

  1. i2cdetect

        (1)查询开发板包含的i2c总线和外设输入命令:i2cdetect -l

        2)探测开发板包含的i2c总线,探测i2c-1总线上挂载的外设,-y表示取消交互模式,1是指i2c-1,输入命令:i2cdetect -y -r 1

下图所示,从设备地址是0x51,UU表示设备地址的从设备被驱动占用,探测程序会略过该设备卸载对应的驱动后,UU就会变成数据,-- 表示该地址被检测,但是没有应答,这里就用这个设备地址进行测试。

        2. i2cset

        (1)设置i2c设备单个寄存器值,输入命令i2cset -y -f 1 0x51 0x00 0x08

                -y 取消交互模式,直接执行命令

                -f 强制访问该设备

                1 表示i2c总线编号

                0x57 表示i2c设备地址

                0x00 表示寄存器地址

                0x08 表示待写入的值

        

        3. i2cget

        (1)查看i2c设备单个寄存器的值,输入命令i2cget -y -f 1 0x51 0x00

                -y 取消交互模式,直接执行命令
               -f 强制访问该设备
               1 表示i2c总线编号
               0x51 表示i2c设备地址
               0x00 表示寄存器地址

        4. i2cdump

        (1)查看i2c设备所有寄存器的值,输入命令i2cdump -y -f 1 0x51

                -y 取消交互过程,直接执行命令
               -f 强制访问该设备
               1 表示i2c总线编号
               0x51 表示i2c设备地址

        

这篇关于Linux-笔记 i2c-tools的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974794

相关文章

threejs坑记录-笔记

雪花 注意depthTest: false 否则会出现有transparent无效 const createSnow = () => {let map = new THREE.TextureLoader().load(snow);let material = new THREE.SpriteMaterial({map: map,transparent: true,side: THREE.Dou

ant和解决Unable to locate tools.jar错误

首先说明 ant下载不用安装 直接解压缩即可,放到任意目录都可以,最好目录不包括中文 , 并且我出现的问题在于  我改了环境变量后,发现没有成功, 重启了一下命令行窗口,就直接成功了(这是让人最容易忽视的 因为就算你改成功了但是不重启 也会显示不成功)。 开始是显示Unable to locate tools.jar  Expected to find it in D:/Program File

Linux脚本重定向

Shell中可能经常能看到:>/dev/null  2>&1  eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print $4}'` 1>/dev/null 2>/dev/null 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/1

Linux下网卡开机自动加载

新安装的虚拟机发现自动起不了网卡接口,每次启动都要 # ifup ens33 则比较麻烦,将下面eht1改成自己的网卡名称的文件修改即可 编辑/etc/sysconfig/network-scripts/ifcfg-eth1 ONBOOT=yes

Linux删除大文件rm -rf的问题

请几天,我删除系统汇总的大文件,大约100G左右,当我使用rm -rf  xxxx.log删除后,使用df -h发现空间并未释放。 一开始以为是由于磁盘虚拟挂载,导致我删除的文件并不是当前目录的文件。但后来发现并不是。 我在网络上搜索发现都是  要: lsof | grep delete kill -9 xxx 但是我觉得这样不安全。 比如文件被进程锁定,或者有进程一直在向这个文件写数

Vue学习笔记:拦截器

原文地址 Vue可以对http request和http response添加全局拦截,最典型的例子就是在请求头里添加token,和监测是否登录,如果没有登录则跳转到登录页面。 main.js中添加拦截器的代码: 1. request 拦截器 //request 拦截器,在请求头中加tokenaxios.interceptors.request.use(config => {if (lo

Pytorch学习笔记_4_训练一个分类器

关于数据 一般来说,对于图像、文本、音频或视频数据,可以使用标准的Python包来将这些数据加载为numpy array,之后可以将这些array转换为torch.*Tensor 对于图像,Pillow、OpenCV包音频,scipy、librosa包文本,可以使用原始Python和Cython加载,或NLKT和SpaCy 特别的,对于视觉任务,有一个包torchvision,其中包含了处理

Pytorch学习笔记_3_构建一个神经网络

Neural Networks 神经网络可以通过使用torch.nn包来创建 nn依赖于autograd来定义模型并求导。 一个nn.Module类包含各个层和一个forward(input)前向传播方法,该方法返回output 例如这个分类数字图像的网络: 这是个简单的前馈神经网络,它接受一个输入,然后一层接一层的传递,最后输出计算结果 一个神经网络的典型训练过程: 定义包

Pytorch学习笔记_2_Autograd自动求导机制

Autograd 自动求导机制 PyTorch 中所有神经网络的核心是 autograd 包。 autograd 包为张量上的所有操作提供了自动求导。它是一个在运行时定义的框架,可以通过代码的运行来决定反向传播的过程,并且每次迭代可以是不同的。 通过一些示例来了解 Tensor 张量 torch.tensor是这个包的核心类。 设置.requires_grad为True,会追踪所有对于

Pytorch学习笔记_1_tensor张量

Tensors Tensors与Numpy中的ndarrays类似 torch.new_* 与 torch.*_like 前者创建的对象会保持原有的属性(如dtype),但shape不同 >>> x = torch.zeros(5, 3, dtype=torch.double)>>> x.new_ones(2, 3)tensor([[1., 1., 1.],[1., 1., 1.]],