智能车制作

标题: K60 MPU6050初始化不成功,求大神 [打印本页]

作者: DHolam    时间: 2016-4-8 20:52
标题: K60 MPU6050初始化不成功,求大神
uint8 DATA_H,DATA_L;

//*********mpu6050初始化*************************
uint8 mpu6050_init()                                   //mpu6050初始化
{
  int data;

  i2c_init(I2C_n, baud_n);                             //I2C0 波特率9600
  DELAY_MS(1000);   
  i2c_write_reg(I2C_n,SlaveAddress,PWR_MGMT_1,0x00);     //解除休眠状态
  DELAY_MS(60);
  i2c_write_reg(I2C_n,SlaveAddress,SMPLRT_DIV,0x07);
  DELAY_MS(60);
  i2c_write_reg(I2C_n,SlaveAddress,CONFIG,0x06);
  DELAY_MS(60);

  //下面两个寄存器可以设置转换后数据的精度   0x08 最大值为 8192 (2^13)
  i2c_write_reg(I2C_n,SlaveAddress,GYRO_CONFIG,0x08);    //
  i2c_write_reg(I2C0,SlaveAddress,ACCEL_CONFIG,0x08);   //

  data = i2c_read_reg(I2C_n,SlaveAddress,WHO_AM_I);
  if(data == 0x68)
    return 1;
  else
    return 0;
}

AD0接地,SlaveAddress地址为0xD0,PWR_MGMT_1地址为0x6B

卡在了解除休眠那句话上且是卡在下面程序的第二句话上(发送从机地址和写位)
void i2c_write_reg(I2Cn_e i2cn, uint8 SlaveID, uint8 reg, uint8 Data)
{

    i2c_Start(i2cn);                                    //发送启动信号

    i2c_write_byte(i2cn, ( SlaveID << 1 ) | MWSR);      //发送从机地址和写位

    i2c_write_byte(i2cn, reg);                          //发送从机里的寄存器地址

    i2c_write_byte(i2cn, Data);                         //发送需要写入的数据

    i2c_Stop(i2cn);

    i2c_delay();                                        //延时太短的话,可能写出错
}

求大神怎么解决






作者: 信田    时间: 2016-4-8 22:17
K60可以用LPLD的库,里面有MPU6050的例程,可以参考看看
我自己也在用,但是采集输出的数据都是-1,不知道是我的哪方面有问题
作者: 萌萌晨    时间: 2016-4-11 11:27
信田 发表于 2016-4-8 22:17
K60可以用LPLD的库,里面有MPU6050的例程,可以参考看看
我自己也在用,但是采集输出的数据都是-1,不知道 ...

楼上大神解决了吗?我iic读的数据也一直是-1,我的不是6050,感觉问题应该一样

作者: 信田    时间: 2016-4-11 11:56
我换了个MPU6050,瞬间出数据了




欢迎光临 智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2