Linux I2C应用编程

本文介绍了Linux下I2C编程,包括常用的I2C工具i2cdetect、i2cget、i2cset和i2cdump的使用方法,并详细阐述了在Linux应用程序中进行I2C外设读写操作的步骤和注意事项,以及I2C的寻址方式和数据传送方式。
摘要由CSDN通过智能技术生成

I2C的协议内容在这里就不大费周章的描述,主要记录一些自己在实际应用过程中觉得有助于调试一些方法。

一、介绍I2C 的几个比较有用的tool

(1)i2cdetect

i2cdetect的主要功能就是I2C设备查询,它用于扫描I2C总线上的设备。它输出一个表,其中包含指定总线上检测到的设备的列表。

该命令的常用格式为:i2cdetect [-y] [-a] [-q|-r] i2cbus [first last]。具体参数的含义如下:

-y

取消交互模式。默认情况下,i2cdetect将等待用户的确认, 当使用此标志时,它将直接执行操作。

-a

强制扫描非规则地址。一般不推荐。

-q

使用SMBus“快速写入”命令进行探测。一般不推荐。

-r

使用SMBus“接收字节”命令进行探测。一般不推荐。

-F

显示适配器实现的功能列表并退出。

-V

显示I2C工具的版本并推出。

-l

显示已经在系统中使用的I2C总线。

i2cbus

表示要扫描的I2C总线的编号或名称。

first last

表示要扫描的从设备地址范围。

该功能的常用方式:

​ 第一,先通过i2cdetect -l查看当前系统中的I2C的总线情况:

 第二,若总线上挂载I2C从设备,可通过i2cdetect扫描某个I2C总线上的所有设备。可通过控制台输入i2cdetect -y 1:(其中"–"表示地址被探测到了,但没有芯片应答; "UU"因为这个地址目前正在被一个驱动程序使用,探测被省略;而16进制的地址号60,1e和50则表示发现了一个外部片选从地址为0x60,0x1e(AP3216)和0x50(eeprom)的外设芯片。

​ 第三,查询I2C总线1 (I2C -1)的功能,命令为i2cdetect -F 1:

(2)i2cget

i2cget的主要功能是获取I2C外设某一寄存器的内容。该命令的常用格式为:

​ i2cget [-f] [-y] [-a] i2cbus chip-address [data-address [mode]]。具体参数的含义如下:

-f

强制访问设备,即使它已经很忙。 默认情况下,i2cget将拒绝访问 已经在内核驱动程序控制下的设备。

-y

取消交互模式。默认情况下,i2cdetect将等待用户的确认,当使用此 标志时,它将直接执行操作。

-a

允许在0x00 - 0x07和0x78 - 0x7f之间使用地址。一般不推荐。

i2cbus

表示要扫描的I2C总线的编号或名称。这个数字应该与i2cdetect -l列出 的总线之一相对应。

chip-address

要操作的外设从地址。

data-address

被查看外设的寄存器地址。

mode

显示数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值