智能车制作
标题:
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://dns.znczz.com/)
Powered by Discuz! X3.2