完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
为什么我读到的MPU9250磁力计AK8963的ID是0x7f,并不是0x48;且读到的磁力计数值为0xDF ,0xBF,0x3F,0xFF3F等基本都是以F结尾的数值;
初始化代码如下: void Init_MPU9250(void) { unsigned char res; Single_Write_MPU9250(GYRO_ADDRESS,PWR_MGMT_1, 0x00); //½â³ýÐÝÃß״̬ Single_Write_MPU9250(GYRO_ADDRESS,SMPLRT_DIV, 0x07); Single_Write_MPU9250(GYRO_ADDRESS,CONFIG, 0x06); Single_Write_MPU9250(GYRO_ADDRESS,GYRO_CONFIG, 0x18); Single_Write_MPU9250(GYRO_ADDRESS,ACCEL_CONFIG, 0x00); //Single_Write_MPU9250(GYRO_ADDRESS,MPU_INT_EN_REG,0X00); //¹Ø±ÕËùÓÐÖÐ¶Ï //Single_Write_MPU9250(GYRO_ADDRESS,MPU_USER_CTRL_REG,0X00);//I2CÖ÷ģʽ¹Ø±Õ //Single_Write_MPU9250(GYRO_ADDRESS,MPU_FIFO_EN_REG,0X00); //¹Ø±ÕFIFO Single_Write_MPU9250(GYRO_ADDRESS,0x37,0x02);//turn on Bypass Mode delay1ms(100); res = Single_Read_MPU9250(GYRO_ADDRESS,WHO_AM_I); if (res == 0x71) { Single_Write_MPU9250(GYRO_ADDRESS,PWR_MGMT_1, 0x01); } res=Single_Read_MPU9250(MAG_ADDRESS,MAG_WIA); //¶ÁÈ¡AK8963 ID if(res==0x48) { Single_Write_MPU9250(MAG_ADDRESS,0x0A,0X11); //ÉèÖÃAK8963Ϊµ¥´Î²âÁ¿Ä£Ê½ } } void READ_MPU9250_MAG(void) { BUF[0]=Single_Read_MPU9250(MAG_ADDRESS,MAG_XOUT_L); BUF[1]=Single_Read_MPU9250(MAG_ADDRESS,MAG_XOUT_H); mag_x=(BUF[1]<<8)|BUF[0]; //¶ÁÈ¡¼ÆËãXÖáÊý¾Ý BUF[2]=Single_Read_MPU9250(MAG_ADDRESS,MAG_YOUT_L); BUF[3]=Single_Read_MPU9250(MAG_ADDRESS,MAG_YOUT_H); mag_y= (BUF[3]<<8)|BUF[2]; //¶ÁÈ¡¼ÆËãYÖáÊý¾Ý BUF[4]=Single_Read_MPU9250(MAG_ADDRESS,MAG_ZOUT_L); BUF[5]=Single_Read_MPU9250(MAG_ADDRESS,MAG_ZOUT_H); mag_z= (BUF[5]<<8)|BUF[4]; //¶ÁÈ¡¼ÆËãZÖáÊý¾Ý Single_Write_MPU9250(MAG_ADDRESS,0x0A,0x11); ////AK8963ÿ´Î¶ÁÍêÒÔºó¶¼ÐèÒªÖØÐÂÉèÖÃΪµ¥´Î²âÁ¿Ä£Ê½,16λÊä³ö delay1ms(50); } 但是读MPU6500的ID是0x71,这个是正确的,这是怎么原因啊? |
|
相关推荐
3个回答
|
|
找到原因了,IIC通讯上出问题了,用模拟IIC读MPU6500的ID和数据没问题,但是要能正确读到AK8963的ID及数据必须在IIC通讯上多延时几微秒,如以下代码:
void IIC_Start(void) { SDA_OUT(); IIC_SDAH(); IIC_SCLH(); delay(); IIC_SDAL(); delay(); IIC_SCLL(); } 之前delay()这里我只用了几个__nop();代替了,与AK8963通讯时必须延时久一点的; |
|
|
|
能分享下源码吗 谢谢
|
|
|
|
您好,我和您遇到的情况一模一样,但是我加了延迟之后还是没有解决,有什么其他的原因造成这个错误吗
|
|
|
|
只有小组成员才能发言,加入小组>>
254个成员聚集在这个小组
加入小组请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4431 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
304浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
287浏览 2评论
299浏览 2评论
304浏览 2评论
345浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 16:14 , Processed in 0.631672 second(s), Total 48, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号