尝试使用MPU6050通过多路IIC协议采集信号 首先更改了DMP解算的源码(所有的函数加上u8 channel项代表通道选择)在一开始时遇到了如下问题:MPU6050初始化一切正常,在采集的过程当中,要么出现卡死的问题,要么出现某一个通道的(通常是前面初始化的)MPU6050无法传来数据,而其他通道(通常是后初始化的)正常采集;问题分析后,发现是MPU的初始采集速率设定过高(源码中DMP头文件设定默认为100),在MPU初始化结束后就开始快速读数,读数过多导致FIFO溢出,触发中断;当中断没有响应时,MPU6050也就处于挂起状态停止读数;此时有几种方法可以解决此问题:1. 单片机的外部中断引脚接MPU6050的INT中断引脚,在中断中提前处理数据;但由于本项目背景为多路采集,大家速率都很快,故中断的方法不理想;2. 降低MPU6050的采样率,从100设置到10左右;如果MPU6050的采样率过高,则由于每次读出数据之后,都要将前面的大量数据前移,故在读取一小段时间后速率反而会变慢;而降低采样率,则可以减少数据前移用时,使得实际采样率大大提升;经过实验发现,若设置采样率为100,6通道采集,则每秒只能读取8组数据;而设置采样率为10,8通道采集,每秒能够读到60组数据;