&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_2>;
status = "okay";
/* LSM330 motion detector (accelerometer) */
lsm330_accel: lsm330_accel@0x1e {
compatible = "st,lsm330-accel";
st,drdy-int-pin = <1>;
reg = <0x1e>;
};
/* LSM330 motion detector (gyroscope) */
lsm330_gyro: lsm330_gyro@0x6a {
compatible = "st,lsm330-gyro";
st,drdy-int-pin = <2>;
reg = <0x6a>;
};
};
该模块显示为
/dev/iio:device0
/dev/iio:device1
对于陀螺仪。他们还表现为
/sys/bus/iio/devices/iio:device0
和
/sys/bus/iio/devices/iio:device1
.我可以通过
cat in_accel_x_raw
然而,运行
cat /dev/iio:device0
在网上搜索之后,我还尝试了以下命令:
cd /sys/bus/iio/devices/iio_sysfs_trigger
echo 0 > add_trigger
cd /sys/bus/iio/devices/iio:device0
echo 1 > scan_elements/in_accel_x_en
echo 1 > scan_elements/in_accel_y_en
echo 1 > scan_elements/in_accel_z_en
echo 1 > scan_elements/in_timestamp_en
echo sysfstrig0 > trigger/current_trigger
echo 100 > buffer/length
echo 1 > buffer/enable
echo 1 > /sys/bus/iio/devices/trigger0/trigger_now
cat/dev/iio:device0
Device or resource busy
cat /sys/bus/iio/devices/iio:device0/in_accel_x_raw
我对linux内核非常陌生,我的目标是将传感器数据暴露给Android系统,以便用户可以旋转屏幕等。我如何让Android从模块中获取传感器读数?