IIC读磁力计数据,SPI读MPU6500数据。
for( ; ;)
{
index++;
if(index == 5)
{
compass.read();
index = 0;
}
ins.accumulate();
vTaskDelayUntil(&xLastWakeTime, 2.5 );
}
代码如上,遇到问题:MPU6500数据间隔性为零,IIC有时接收不到数据。解决:把这两个读分开成两个任务,问题解决。分析:刚读完IIC,立马读SPI,会造成两个中一个读不到。就算延时好像也没有用。
此外还遇到问题:atmel PB4,PB5引脚被复用,配置IIC时应该把两引脚配成普通引脚。IIC的从地址是7位。