野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9552|回复: 6

【求助】MPU6050例程中读取加速度的程序

[复制链接]
发表于 2016-5-7 16:50:12 | 显示全部楼层 |阅读模式
看火哥MPU6050的例程中,有一些困惑,有没有懂这个的能给我解答一下啊。谢谢您的帮助


void MPU6050ReadAcc(short *accData)
{
    u8 buf[6];
    MPU6050_ReadData(MPU6050_ACC_OUT, buf, 6);
    accData[0] = (buf[0] << 8) | buf[1];
    accData[1] = (buf[2] << 8) | buf[3];
    accData[2] = (buf[4] << 8) | buf[5];
}
这三个数组数据为什么是这样得到啊?这个BUF数组不是在I2C.C中用 RegisterValue[i++] = I2C_ReceiveData(SENSORS_I2C)这句话取的值么?
回复

使用道具 举报

发表于 2016-5-9 09:08:26 | 显示全部楼层
MPU6050_ReadData获得6个数据,然后把8位数据合并成16位数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-9 12:21:37 | 显示全部楼层
flyleaf 发表于 2016-5-9 09:08
MPU6050_ReadData获得6个数据,然后把8位数据合并成16位数据

也就是说这个MPU6050输出的数据都是16位的,(这个在他的寄存器哪部分描述),I2C的传输数据包是8位的,是吗?十分感谢您的帮助。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-5-9 12:23:36 | 显示全部楼层
本帖最后由 起个名字好难 于 2016-5-9 12:25 编辑

卡了,回复了两次。
回复 支持 反对

使用道具 举报

发表于 2016-5-9 19:14:57 | 显示全部楼层
起个名字好难 发表于 2016-5-9 12:21
也就是说这个MPU6050输出的数据都是16位的,(这个在他的寄存器哪部分描述),I2C的传输数据包是8位的, ...

这个你直接看代码里的宏,看它是读哪个寄存器,然后在寄存器手册里搜索就知道了
回复 支持 反对

使用道具 举报

发表于 2016-11-17 11:42:11 | 显示全部楼层
获得加速度,怎么转换为走路的步数呢
回复 支持 反对

使用道具 举报

发表于 2018-9-13 09:05:11 | 显示全部楼层
16位分成高八位与低八位,我们只需读取高八位即可
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-27 19:17 , Processed in 0.039146 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表