我正在使用MPU-9250感应传感器,并从android内核中获取了它的驱动程序,并与linux内核集成。驱动程序运行良好,对内核和节点、/dev/iio:\device0 0进行了一些修改,还生成了sys文件系统下的文件。所以我假设司机工作得很好。
现在,我希望使用/dev/iio:\device0节点从用户空间读取传感器数据。为此,我需要在MPU-9250驱动程序中打开关闭功能。但是驱动程序中没有可用的文件操作。
我试着从sys文件系统中读取数据,
# echo 1 > /sys/bus/iio/devices/iio:device0/power_state
# echo 1 > /sys/bus/iio/devices/iio:device0/accel_enable
# echo 100 > /sys/bus/iio/devices/iio:device0/buffer/length
# echo 1 > /sys/bus/iio/devices/iio:device0/buffer/enable
之后,它应该填充从传感器读取的数据。但是什么都没有展示出来。因此,在此之后,我尝试从dev文件系统读取数据。
# cat /dev/iio:\device0
即使如此,什么也没有展示出来。
请有人告诉我如何读取这些数据。
问候
发布于 2016-11-11 20:57:48
我相信你的问题与你没有启用任何扫描元素有关。
位于: /sys/bus/iio/devices/iio:devicex/scan_elements.中的扫描元素
在这里,您应该启用要捕获的扫描元素。yo应该有三个后缀文件:_en、_index和_type。
_type指的是扫描的类型,索引是为设备读取中的扫描分配的通道,_en的状态是“启用”。只需将"1“写入您希望启用的扫描_en文件,写入/buffer/length 100和/buffer/enable "1”,您就应该开始获取数据。
我认为这不是您的问题,因为您可能根本无法启用缓冲区,但是您可能需要启用一个触发器,该触发器也应该位于/sys/bus/iio/设备中。这里应该有触发器1/2/3目录,这取决于您拥有的IIO设备的数量。您可能需要将触发器名称写入/sys/bus/iio/devices/iio:devicex/trigger/current_trigger.
所以你应该做:
echo /sys/bus/iio/devices/trigger[x]/name >
/sys/bus/iio/devices/iio:device[x]/trigger/current_trigger
希望这能帮上忙。
https://stackoverflow.com/questions/36791837
复制相似问题