我使用战舰的MPU6050的程序,不过我没有用DMP处理,我只是想得到原始的加速度,角速度和温度,为什么读出的值不变化,并且,我把战舰MPU6050程序里的AD0和INT脚都去掉了,为啥不行,求大神指导这是主函数里的数据处理代码:
temp=MPU_Get_Temperature(); //获取温度值
LCD_ShowNum(30+48+8,200,temp/100,3,16); //显示整数部分
LCD_ShowChar(30+48+32,200,'.',16,0);
LCD_ShowNum(30+48+40,200,temp%10,1,16); //显示小数部分
MPU_Get_Accelerometer(&aac_x,&aac_y,&aac_z); //得到加速度值(原始值) 加速度
LCD_ShowNum(30+48+8,50,aac_x/100,3,16);
LCD_ShowChar(30+48+32,50,'.',16,0);
LCD_ShowNum(30+48+40,50,aac_x%10,1,16);
LCD_ShowNum(30+48+8,70,aac_y/100,3,16);
LCD_ShowChar(30+48+32,70,'.',16,0);
LCD_ShowNum(30+48+40,70,aac_y%10,1,16);
LCD_ShowNum(30+48+8,90,aac_z/100,3,16);
LCD_ShowChar(30+48+32,90,'.',16,0);
LCD_ShowNum(30+48+40,90,aac_z%10,1,16);
MPU_Get_Gyroscope(&gryo_x,&gryo_y,&gryo_z); //得到陀螺仪值(原始值) 角速度
MPU6050的初始化函数:其中INT脚已经接地
u8 res;
MPU_IIC_Init();
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //复位MPU6050
delay_ms(100);
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00); //唤醒MPU6050
MPU_Set_Gyro_Fsr(3); //陀螺仪传感器,±2000dps
MPU_Set_Accel_Fsr(0); //加速度传感器,±2g
MPU_Set_Rate(50); //设置采样率50Hz
MPU_Write_Byte(MPU_INT_EN_REG,0X00); //关闭所有中断
MPU_Write_Byte(MPU_USER_CTRL_REG,0X00); //I2C主模式关闭
MPU_Write_Byte(MPU_FIFO_EN_REG,0X00); //关闭FIFO
MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80); //INT引脚低电平有效
delay_ms(10);
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //设置CLKSEL,PLL X轴为参考
MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //加速度与陀螺仪都工作
MPU_Set_Rate(50); //设置采样率为50Hz
其中我只把战舰里的MPU6050.C和MPUIIC.c这两个函数加到工程,那DMP处理的函数我没加,
一周热门 更多>