gpt4 book ai didi

c - 无法从 lsm9ds0_acc_mag 设备驱动程序读取输出

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:17 24 4
gpt4 key购买 nike

我无法找到一种方法来从 lam9ds0 驱动程序读取传感器的输出值 https://github.com/erlerobot/kernel_lsm9ds0/tree/master/i2c

驱动程序代码在上面名为 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");
}
}

关于c - 无法从 lsm9ds0_acc_mag 设备驱动程序读取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31558594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com