zoukankan      html  css  js  c++  java
  • mpu6050 DMP库的移植

    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

  • 相关阅读:
    严格模式
    es6模块与 commonJS规范的区别
    Javascript内置对象、原生对象、宿主对象关系
    实现继承的几种方式
    创建对象的一些方式
    null的小扩展
    getElementById的缩略
    你真的知道为什么不推荐使用@import?
    换行与不换行
    transition与animation
  • 原文地址:https://www.cnblogs.com/prayer521/p/6862381.html
Copyright © 2011-2022 走看看