https://www.amobbs.com/thread-5528472-1-1.html

官方的运动库,必须通过这个才能启用MPU6050的DMP引擎(数据手册里完全不提这个东西,必须在官网注册登录后才有·····)
里面的代码是基于msp430的,不过很容易就能移植到stm32上面

唯一需要的就是得提供i2c读写接口,然后在
#define i2c_write(a, b, c, d)   !I2C_BufferWrite(d, c, b, a)
这里替换

剩下的就是照着范例文件依次调用函数
主要是这几个

  1. mpu_init();
  2. mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL);
  3. mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL);mpu_set_sample_rate(DEFAULT_MPU_HZ);
  4. dmp_load_motion_driver_firmware();
  5. dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));
  6. dmp_enable_feature(hal.dmp_features);
  7. dmp_set_fifo_rate(DEFAULT_MPU_HZ);
  8. run_self_test();
  9. mpu_set_dmp_state(1);

复制代码

其中dmp_load_motion_driver_firmware()这个很重要,失败的话就没法开启DMP
run_self_test();是自检,用来消除漂移的

初始化完成后在死循环里调用dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);来读取FIFO
(sensors & INV_WXYZ_QUAT)为真就说明读到四元数,默认是long,得转换成float后除以 1073741824.0f,然后就能使用了,顺序是wxyz

最新文章

  1. 获取sql server数据库表结构
  2. mysql找回密码
  3. COGS 2188. [HZOI 2015] Math 题解
  4. IOS的UI基础01
  5. poj 2392 多重背包
  6. hibernate 连接数据库时报错
  7. FSharp.Data 程序集之 Http
  8. 会话技术cookie和session详解
  9. myeclipse连接hadoop集群编程及问题解决
  10. 移植 DeepinQQ 到 Fedora 中
  11. ZOJ 3949 Edge to the Root( 树形dp)
  12. Codeforces1100F Ivan and Burgers 【整体二分】【线性基】
  13. 清除Windows访问共享时保存的凭据记录
  14. HTTPClient to use http/https protocol to send request
  15. centos7 开机启动服务链接说明
  16. 还是要习惯在linux环境下作Java开发
  17. [转] Meida视频加密二-Blob对象
  18. 微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法
  19. 尚硅谷springboot学习7-yaml配置文件
  20. MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明

热门文章

  1. jqGrid常用属性和方法介绍
  2. STL List::sort() 解析
  3. android实现gif图与文字混排
  4. scala 学习笔记十 元组
  5. LA 4728 Square ,旋转卡壳法求多边形的直径
  6. OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检測的測试代码
  7. MyEclipse中使用Junit插件进行单元测试
  8. 生成activiti需要的25张系统表
  9. remote: ERROR: missing Change-Id in commit message footer
  10. C++ vector类型要点总结