iio data access iio数据获取
只有两种方法可以使用iio框架访问数据; 通过sysf通道进行一次性捕获,或通过iio字符设备进行连续模式(触发缓冲)。
one-shot capture:单次获取
一次性数据捕获通过sysfs接口完成。 通过读取与通道对应的sysfs条目,您将仅捕获特定于该通道的数据。 给定一个带有两个通道的温度传感器:一个用于环境温度,另一个用于热电偶温度:
# cd /sys/bus/iio/devices/iio:device0
# cat in_voltage3_raw
6646
# cat in_voltage_scale
0.305175781
通过将比例乘以原始值来获得处理值。
voltage value: 6646 * 0.305175781 = 2028.19824053
器件数据表说过程值以mv给出。 在我们的例子中,它对应于2.02819v。
buffer data access:缓冲区数据获取
要使触发的采集工作,必须在驱动程序中实现触发器支持。 然后,要从用户空间内获取数据,必须:创建触发器,分配它,启用adc通道,设置缓冲区的维度,并启用它。这里主要介绍两种:sysfs触发器和hrtimer触发器。
使用sysfs触发器获取:
使用sysfs触发器捕获数据包括发送一组命令少量sysfs文件。 让我们列举一下我们应该做些什么来实现这一目标:
1. 创建触发器:在将触发器分配给任何设备之前,应该创建它:
# echo 0 >