我是Linux设备驱动程序的新手。
我有一个IIO驱动程序(用于OPT3001环境光传感器),它在I2C总线上运行,它已经在内核(版本3.18)中成功编译。修改设备树以匹配驱动程序中的compatible字段。
问题是我如何访问这个驱动程序来获取用户空间中的一些数据?
驱动程序在一个结构中注册了一些读写回调函数。我应该在我的C文件中直接调用它们吗?
发布于 2018-06-22 17:40:28
您可以使用由提供的用户空间API:
#include <linux/i2c-dev.h>使用它,您可以打开de bus /dev/i2c-X (X=0,1,2,...),使用ioctl调用设置设备地址,并使用读写操作对总线进行读写。
此外,您还可以安装" I2C - tools“包(apt-get install i2c-tools)来安装i2cset、i2cget和i2cdetect等用户空间工具,这对于测试I2C总线和连接到它的设备非常有用。
发布于 2018-06-22 17:43:47
你有不同的可能性:
对于/dev节点,您可以访问文件操作(打开、读取、写入、ioctl)。您只需打开文件1次,每次read()调用都会从传感器读取该值。
对于sysfs,您应该在/sys/class/...中找到要打开/读取的文件。
https://stackoverflow.com/questions/50984967
复制相似问题