我是Linux设备驱动程序的菜鸟。
我有一个IIO驱动程序(用于OPT3001环境光传感器),它通过I2C总线运行,该总线已在内核中成功编译(版本3.18)。修改设备树以匹配驱动程序中存在的兼容字段。
问题是如何访问此驱动程序以在用户空间中获取一些数据?
驱动程序在结构中注册了一些用于读取和写入的回调。我应该直接在C文件中调用它们吗?
答案 0 :(得分:0)
您可以使用以下提供的用户空间API:
#include <linux/i2c-dev.h>
使用它可以打开/ dev / i2c-X总线(X = 0,1,2,...),使用ioctl调用设置设备地址,并使用读写操作进行读写操作公共汽车。
此外,您可以安装“ i2c-tools”软件包(apt-get install i2c-tools),以安装诸如i2cset,i2cget和i2cdetect之类的用户空间工具,对于测试I2C总线及其连接的设备非常有用。 / p>
答案 1 :(得分:0)
您有不同的可能性:
在/ dev节点的情况下,您可以访问文件操作(打开,读取,写入,ioctl)。您只需打开文件1次,每次read()调用都会从传感器读取值。
对于sysfs,您应该在/ sys / class / ...中找到要打开/读取的文件。