stm32模拟iic挂载两个MPU6050得到的地址都是0x68

【ΩΨΩ】 2018-08-16 08:37:49
两个MPU地址线一个接地一个接3.3v,无论将地址改为0x68还是0x69,通过IIC访问,返回的器件地址都是0x68
...全文
2187 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂低调 2019-02-01
  • 打赏
  • 举报
回复
最低位是rw标志位,0代表主发从收,1代表主收从发,所以同一个设备返回的地址差一位不代表是两个设备。你的另外一个地址设置的有问题。看看设备手册重新设置不同地址。
无垠树 2018-12-21
  • 打赏
  • 举报
回复
应该是0x69的地址没法出去吧,你的两个mpu6050是接在一起的吧?既然返回了0x68,就说明和0x68的地址的设备联系上了,你单独一个一个接试试,要是你发0x69,没道理会得到一个不同的地址返回值。
weixin_38401582 2018-12-21
  • 打赏
  • 举报
回复
应该读的都是0x68地址的丛机
fly 100% 2018-12-18
  • 打赏
  • 举报
回复
有另外的寄存器去区分的
飛饵 2018-12-04
  • 打赏
  • 举报
回复 2
数据手册上有说明,不管AD0接高还是低,读出来的都是0x68。who am i寄存器的第0bit和第7bit是强制为0,1bit--6bit是固定的110100,所以两个器件读出来都是0110 1000(0x68)。要理解这个值只是表示"我是MPU6050",并不能区分是哪个MPU6050。只能通过从机地址0xD0或0xD2来区分是哪个MPU6050
凹特慢 2018-09-11
  • 打赏
  • 举报
回复 1
从机地址应该由从机决定,由从机的硬件连接决定,可以看下手册,: The slave address of the MPU-60X0 is b110100X which is 7 bits long. The LSB bit of the 7 bit address is determined by the logic level on pin AD0. This allows two MPU-60X0s to be connected to the same I2C bus.
When used in this configuration, the address of the one of the devices should be b1101000 (pin AD0 is logic
low) and the address of the other should be b1101001 (pin AD0 is logic high).
你软件上写0x68 0x69是没有作用的,只能由从机自己决定。
Acuity. 2018-09-01
  • 打赏
  • 举报
回复
那是寄存器的值,不是从机地址,从机地址不对,你i2c都通信不上。
gluoha 2018-08-31
  • 打赏
  • 举报
回复
地址不是不同嘛,一个68一个69,分开发送试试
of123 2018-08-23
  • 打赏
  • 举报
回复
怎么确定读的是哪一个从机,如果地址相同的话?
Jacky_Lu 2018-08-22
  • 打赏
  • 举报
回复
这个貌似 一个 固定的值吧
【ΩΨΩ】 2018-08-17
  • 打赏
  • 举报
回复
通过iic读地址寄存器MPU_DRIVE_ID_REG,打印两个返回的地址值res,都是0x68
of123 2018-08-17
  • 打赏
  • 举报
回复
从机地址是从机决定的,与主机无关。

另外,你是如何确定两个从机地址相同的?

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧