首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从用户空间读取IIO设备数据

从用户空间读取IIO设备数据
EN

Stack Overflow用户
提问于 2016-04-22 10:52:40
回答 1查看 4.8K关注 1票数 1

我正在使用MPU-9250感应传感器,并从android内核中获取了它的驱动程序,并与linux内核集成。驱动程序运行良好,对内核和节点、/dev/iio:\device0 0进行了一些修改,还生成了sys文件系统下的文件。所以我假设司机工作得很好。

现在,我希望使用/dev/iio:\device0节点从用户空间读取传感器数据。为此,我需要在MPU-9250驱动程序中打开关闭功能。但是驱动程序中没有可用的文件操作。

我试着从sys文件系统中读取数据,

代码语言:javascript
运行
复制
# 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文件系统读取数据。

代码语言:javascript
运行
复制
# cat /dev/iio:\device0

即使如此,什么也没有展示出来。

请有人告诉我如何读取这些数据。

问候

EN

Stack Overflow用户

回答已采纳

发布于 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.

所以你应该做:

代码语言:javascript
运行
复制
echo /sys/bus/iio/devices/trigger[x]/name > 
/sys/bus/iio/devices/iio:device[x]/trigger/current_trigger

希望这能帮上忙。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36791837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档