新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2021-6-16
- 在线时间
- 10 小时
|
发表于 2021-6-18 11:58:41
|
显示全部楼层
本帖最后由 ah秘峰 于 2021-6-18 12:00 编辑
我遇到了巨坑,陀螺仪初始化过不去,细查发现器件ID读取错误,下面是部分代码和串口数据(代码取自原子哥的MPU9250例程)陀螺仪初始化代码截取
MPU_Write_Byte(MPU9250_ADDR,MPU_INTBP_CFG_REG,0X82);//INT引脚低电平有效,开启bypass模式,可以直接读取磁力计
res=MPU_Read_Byte(MPU9250_ADDR,MPU_DEVICE_ID_REG); //读取MPU6500的ID
usart1_send_char(0XBB);
usart1_send_char(res);
usart1_send_char(0XBB);
if(res==MPU6500_ID1 || res==MPU6500_ID2) //器件ID正确
{
MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X01); //设置CLKSEL,PLL X轴为参考
MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT2_REG,0X00); //加速度与陀螺仪都工作
MPU_Set_Rate(50); //设置采样率为50Hz
}//else return 1;
res=MPU_Read_Byte(AK8963_ADDR,MAG_WIA); //读取AK8963 ID
usart1_send_char(0XCC);
usart1_send_char(res);
usart1_send_char(0XCC);
if(res==AK8963_ID)
{
MPU_Write_Byte(AK8963_ADDR,MAG_CNTL1,0X11); //设置AK8963为单次测量模式
}else return 2;
串口读取的数据为BB 70 BB CC FF CC AA 02 AA
读取的器件ID陀螺仪为0x70,地磁计为0xff,
弄了一整天,就是过不了,最后换了一种MPU9250模块,秒过!!!!
最后联系了卖家,卖家给退款退货了,坑死我了!!!!
|
|