历史上的今天
今天是:2024年09月16日(星期一)
2020年09月16日 | mpu6050 DMP库的移植
2020-09-16 来源:eefocus
官方的运动库,必须通过这个才能启用MPU6050的DMP引擎(数据手册里完全不提这个东西,必须在官网注册登录后才有·····)
里面的代码是基于msp430的,不过很容易就能移植到stm32上面

唯一需要的就是得提供i2c读写接口,然后在
#define i2c_write(a, b, c, d) !I2C_BufferWrite(d, c, b, a)
这里替换
剩下的就是照着范例文件依次调用函数
主要是这几个
mpu_init();
mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL);
mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL);mpu_set_sample_rate(DEFAULT_MPU_HZ);
dmp_load_motion_driver_firmware();
dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));
dmp_enable_feature(hal.dmp_features);
dmp_set_fifo_rate(DEFAULT_MPU_HZ);
run_self_test();
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
史海拾趣
|
兄弟们,有没有发现,我们的版块在竞赛时期是非常活跃的版块之一,可是,不是竞赛时期,我们这里却有点冷清了。我们要在非竞赛时期加强讨论!我们的版块不仅仅是“资料下载站”,我们这里更应该是一个“学术交流地”!刚刚结束比赛的朋友们可以说一 ...… 查看全部问答> |
|
在MDK环境,从上电启动运行到MAIN()之间都干了些什么? 看反汇编,好像有一些初始化RAM,设置堆栈,和中断向量. 请香版主详细解释一下,或者参考那些资料; 另,怎么指定堆栈的位置?… 查看全部问答> |
|
本文补充了4200-SCS[1]应用手册第四章节脉冲IV部分信息。双击4200桌面上的Complete Reference图标得到所有4200的文档。通常而言,4200-PIV[2]给门极施加一个脉冲,同时直流偏置漏极。源和本体均连接到地线/屏蔽层上。双通道示波器(4200-SCP2)测 ...… 查看全部问答> |
|
我这两天忙着修硬盘。硬盘不幸暴亡。修了两三天。最终我还是买了块新的。 本来这程序是在坏硬盘上的。好在我考出来了。 我上次笔记是在屏幕上任意位置显示点。其实我是有用义的。我这次是接着上次在屏上显示AD转换值。 由于屏幕的限制只能显示六 ...… 查看全部问答> |
|
Sitara ARM Cortex-A8 Processor, AM3354 at 720 MHz On-board memory256 MB RAM DDR31 Gigabyte Nand Flash Connectivity and expandabilityUSB Host PortUSB Device PortRJ-45 Ethernet PortConnector for optional 1 GB Ethernet PortPort fo ...… 查看全部问答> |




