完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在调试GY-86模块,调试到HMC5883L的时候读回来的数据都是0,仔细看原理图发现HMC5883L的SDA,SCL是连接到MOU6050的XDA,XCL上的,这样的话就是MPU6050作为主机了,这样该怎么进行HMC5883L数据的读取呢?对MOU6050作为主IIC完全没有接触过。求助论坛里的大神们,先谢谢大家了!
|
|
相关推荐
12个回答
|
|
如果你把MPU6050设置为主机,可能需要写6050的程序读取磁力计数据,再通过IIC给单片机,这样比较麻烦。建议把MPU6050配置为旁通模式,这样相当于内部短路,磁力计就直接连到了IIC上,具体实现:
[C] 纯文本查看 复制代码 MPU_Write_Byte(MPU_INTBP_CFG_REG,0X02);这个是我参照其他代码写出来的,因为我没有找到MPU的寄存器方面的资料,所以... 但是这里注意到原子的F4开发板的MPU6050.c文件中第24行: [C] 纯文本查看 复制代码 MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80);若题主参考原子代码,可以试把这里的寄存器改为0x82。 附录是我GY-86的工程,读取GY-86 10轴传感器并上传给匿名上位机V4.06 编译环境:MDK5 单片机:STM32F103RC 接线(只需四根): SDA-->C12 SCL-->C11 3.3V-->3.3V GND-->GND 若使用我的工程,遇到一个DMP初始不成功时候,则拔出电源线再接入,此时串口又会输出HMC_error,按复位,基本就可以了。 猜测是模拟IIC的SDA线没有作上输入,故在原子哥代码上增添为: [C] 纯文本查看 复制代码 #define SDA_IN() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;GPIOC->ODR=1<<11;} //新增GPIOC->ODR=1<<11把PC11设置为上拉输入,但是没有效果,这里顺便请教一下原子哥,这样设置是否正确? 再一个问题,我的yaw没有倾角补偿,完全是hmc5883l的x轴,y轴的反三角,所以若不是水平面,得到的角度是不准确的。 使用网上流行的那两条公式并没有成功,我猜想是因为坐标系不同原因(左手坐标系和右手坐标系)。 Starshine_02.zip (3.02 MB ) |
|
|
|
帮顶....
|
|
|
|
嗯嗯,太感谢了!下载了,一定好好学习!
|
|
|
|
我刚刚更新了,你再看下吧。
|
|
|
|
嗯嗯,已经可以读YAW值了!开始只是把6050的那个寄存器值改为0x82,发现不行。后来在磁力计的初始化里面加了那条代码就成功了,真心谢谢你!!!
|
|
|
|
加了哪条?
|
|
|
|
|
|
|
|
加了MPU_Write_Byte(MPU_INTBP_CFG_REG,0X82);这句就OK啦!你也在做四轴?
|
|
|
|
|
|
|
|
你的四轴做的怎么样了?
|
|
|
|
想知道,磁力计和MPU6050的IIC口是接在一起的吗?
|
|
|
|
你好,我试用你的程序,用匿名上位机打开后发现基本数据、高级收码都有,但就是其他的显示不出来,该怎么办呀?
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4351 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
216浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
149浏览 2评论
189浏览 2评论
173浏览 2评论
198浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 11:16 , Processed in 0.630861 second(s), Total 69, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191