无法从 lsm9ds0_acc_mag 设备驱动程序读取输出
unable read output from lsm9ds0_acc_mag device driver
我无法找到从 lam9ds0 驱动程序读取传感器输出值的方法
https://github.com/erlerobot/kernel_lsm9ds0/tree/master/i2c
驱动代码可在上面link命名为lsm9ds0_acc_mag.c
任何熟悉设备驱动程序编码的人,请帮助我获取输出值。我是设备驱动程序概念的新手。
我尝试过汇编语言,但它不适合我的项目要求。
安装此 lsm9ds0_acc_mag 驱动程序时,它会在目录 /dev/input/ 下创建相应的事件文件,文件名为 eventx(其中 x 可以取从 1 开始的任何整数值)。
阅读/dev/input/eventx这个文件你会得到X Y和Z方向的加速度计值
我使用了下面的代码
#define ACCELEROMETER "/dev/input/event2"
struct input_event event;
U32 u32X;
U32 u32Y;
U32 u32Z;
void getCaliberate()
{
U16 fd;
ssize_t ret;
fd = open(ACCELEROMETER, O_RDONLY | O_NDELAY);
if(fd == -1)
{
printf("Unable to open /dev");
}
while(ret=read(fd, &event, sizeof(struct input_event)))
{
if (ret != -1)
{
if (event.type == EV_ABS)
{
printf("type = %d\t", event.type);
if (event.code == 0)
u32X = event.value;
if (event.code == 1)
u32Y = event.value;
if (event.code == 2)
u32Z = event.value;
}
}
else
{
printf("Read failed\n");
}
}
我无法找到从 lam9ds0 驱动程序读取传感器输出值的方法 https://github.com/erlerobot/kernel_lsm9ds0/tree/master/i2c
驱动代码可在上面link命名为lsm9ds0_acc_mag.c
任何熟悉设备驱动程序编码的人,请帮助我获取输出值。我是设备驱动程序概念的新手。
我尝试过汇编语言,但它不适合我的项目要求。
安装此 lsm9ds0_acc_mag 驱动程序时,它会在目录 /dev/input/ 下创建相应的事件文件,文件名为 eventx(其中 x 可以取从 1 开始的任何整数值)。
阅读/dev/input/eventx这个文件你会得到X Y和Z方向的加速度计值
我使用了下面的代码
#define ACCELEROMETER "/dev/input/event2"
struct input_event event;
U32 u32X;
U32 u32Y;
U32 u32Z;
void getCaliberate()
{
U16 fd;
ssize_t ret;
fd = open(ACCELEROMETER, O_RDONLY | O_NDELAY);
if(fd == -1)
{
printf("Unable to open /dev");
}
while(ret=read(fd, &event, sizeof(struct input_event)))
{
if (ret != -1)
{
if (event.type == EV_ABS)
{
printf("type = %d\t", event.type);
if (event.code == 0)
u32X = event.value;
if (event.code == 1)
u32Y = event.value;
if (event.code == 2)
u32Z = event.value;
}
}
else
{
printf("Read failed\n");
}
}