这个移植花费了我好多时间…
本来是想使用mpu6xxx的软件包的,但是得到的数据抖动太厉害了
在网上找到了两种得到稳定的数据的方法
-
DMP
-
Kalman滤波
看到DMP的效果更好,就选择DMP的方案
了解到 InvenSense 公司提供的 MotionDriver 可以用DMP的方式读取mpu,就开始移植 MotionDriver 这个库
本项目的地址 https://github.com/greedyhao/MotionDriver2RTT
移植步骤
简单的说,就是把 core/driver/eMPL/inv_mpu.c 这个文件中需要使用到的函数实现就行了
这个文件中也有相关说明
/* The following functions must be defined for this platform:
* i2c_write(unsigned char slave_addr, unsigned char reg_addr,
* unsigned char length, unsigned char const *data)
* i2c_read(unsigned char slave_addr, unsigned char reg_addr,
* unsigned char length, unsigned char *data)
* delay_ms(unsigned long num_ms)
* get_ms(unsigned long *count)
* reg_int_cb(void (*cb)(void), unsigned char port, unsi