1' *_* -- 4 c++ microcontroller arduino i2c sensors
我为 Arduino 编写了一个类,用于读取HiTechnic LEGO Mindstorms 罗盘传感器的罗盘数据。
使用 Wire-library,我可以很好地从相应的寄存器中获取数据。在我的 Arduino 库中,我介绍了有人已经在 Arduino 论坛上0x01完成的传感器。但网络上的其他地方(乐高 Mindstorms 的 RobotC 论坛或本文档最底部的代码示例)都显示,该传感器的 I2C 地址是。0x02
那么,为什么我必须使用该地址0x01才能与我的传感器进行通信,而0x02其他编程语言似乎可以使用该地址呢?
I2C 地址有不同的格式 - 7 位或 8 位。Arduino 使用 7 位格式,因此要将 8 位地址转换为 7 位,只需将其右移一位即可。这就是 0x02 8 位地址转换为 0x01 7 位地址的过程。
来源: http: //arduino.cc/en/reference/wire
注意:I2C 地址有 7 位和 8 位版本。7 位标识设备,第八位确定是否正在写入或读取。Wire 库始终使用 7 位地址。如果您有使用 8 位地址的数据表或示例代码时,您需要删除低位(即将值向右移动一位),从而产生 0 到 127 之间的地址。”
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |