中级会员
 
- 积分
- 298
- 金钱
- 298
- 注册时间
- 2015-1-30
- 在线时间
- 40 小时
|

楼主 |
发表于 2017-1-6 14:32:01
|
显示全部楼层
IO部分我都改过了
u8 MPU_Get_Gyroscope(short *gx,short *gy,short *gz)
这个函数 调用的就是
u8 MPU_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)
{
IIC_Start();
IIC_Send_Byte((addr<<1)|0);//·¢ËíÆ÷¼tμØÖ·+D′Ãüáî
if(IIC_Wait_Ack()) //μè′yó|′e
{
IIC_Stop();
return 1;
}
IIC_Send_Byte(reg); //D′¼Ä′æÆ÷μØÖ·
IIC_Wait_Ack(); //μè′yó|′e
IIC_Start();
IIC_Send_Byte((addr<<1)|1);//·¢ËíÆ÷¼tμØÖ·+¶áÃüáî
IIC_Wait_Ack(); //μè′yó|′e
while(len)
{
if(len==1)*buf=IIC_Read_Byte(0);//¶áêy¾Y,·¢ËínACK
else *buf=IIC_Read_Byte(1); //¶áêy¾Y,·¢ËíACK
len--;
buf++;
}
IIC_Stop(); //2úéúò»¸öí£Ö1ìõ¼t
return 0;
}
这个连续读 函数 这读出来就是原始数据 可是只能读1个数据出来 不知道为什么 我吧这函数改成
u8 MPU_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)
{
u8 i;
for(i=0;i<len;i++)
{
*buf=MPU_Read_Byte(reg);
buf++;
reg+=1;
}
return 0;
}
这样 就可以全部读出来 ,,现在读数据到没什么问题
现在DMP加载固件库失败 ,,,失败的地方那个函数 貌似 是 汇编的 还是不开源..
if (memcmp(firmware+ii, cur, this_write))
return -2;
、 |
|