中级会员
 
- 积分
- 242
- 金钱
- 242
- 注册时间
- 2015-12-9
- 在线时间
- 85 小时
|
3金钱
我用STM32来做四轴飞行器,外什么我设置的地址为0x69,读到的是0x68,dmp自检不通过,我用的不是6050模块,直接焊接在板子上。 读取器件地址:
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //¸′λMPU6050 delay_ms(100);
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00); //»½DÑMPU6050
MPU_Set_Gyro_Fsr(3); //íóÂYòÇ′«¸DÆ÷,¡à2000dps
MPU_Set_Accel_Fsr(0); //¼óËù¶è′«¸DÆ÷,¡à2g
MPU_Set_Rate(50); //éèÖÃ2éÑùÂê50Hz
MPU_Write_Byte(MPU_INT_EN_REG,0X00); //1رÕËùóDÖD¶Ï
MPU_Write_Byte(MPU_USER_CTRL_REG,0X00); //I2CÖ÷Ä£ê½1رÕ
MPU_Write_Byte(MPU_FIFO_EN_REG,0X00); //1رÕFIFO
MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80); //INTòy½ÅμíμçÆ½óDD§
res=MPU_Read_Byte(MPU_DEVICE_ID_REG);
if(res==0x68)// 只有这儿是0X68才进得去。
{
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //éèÖÃCLKSEL,PLL XÖáÎa2ο¼
MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //¼óËù¶èóëíóÂYòǶ¼1¤×÷
MPU_Set_Rate(50); //éèÖÃ2éÑùÂêÎa50Hz
}else return 1;
return 0;
我设的地址:#define MPU_ADDR 0X69
|
最佳答案
查看完整内容[请看2#楼]
把结构体里默认的0x68都改成0x69试试。比如下面这段
[mw_shl_code=c,true]const struct hw_s hw={
0x68, //addr
1024, //max_fifo
118, //num_reg
340, //temp_sens
-521, //temp_offset
256 //bank_size
};[/mw_shl_code]
|