arduino - ESP32 或 Arduino 上的 I2C:使用 BMP388 传感器的最大从机数量是多少
问题描述
BMP388:I2C 模式下从机地址的最大值是多少
在 I2C 模式下,一个主机可以连接多少个 BMP388 作为从机到 Arduino UNO?从数据表中,我了解到在 I2C 模式(0x76 或 0x77)下只有 2 个地址可能,由设备地址中的第 7 位指定,并通过 SDO(引脚 5)端口配置为接地或加号。在 SPI 模式下,正如我希望从数据表中了解的那样,最多有 128 个 BMP388 地址。
我的问题是:-我是否理解在 I2C 模式下最大从站数量为两个?-当然,我可以将很多 BMP388 串联到 Arduino,但是我如何在 I2C 模式下寻址它们。还是我应该使用 SPI 模式?- 除了数据表之外,是否有任何文档可以更清楚地说明这一点?- 是否有适用于 I2C 情况的示例 Arduino 代码?
解决方案
您正确理解了 i2c 寻址。在 i2c 模式下,由 SDO 引脚控制的 BMP388 只能有 2 个地址。
如果您想在单个微控制器上使用超过 2 个 BMP388 单元,请使用 SPI。您可以使用与微控制器上的 GPIO 引脚一样多的 BMP388 单元来控制从选择引脚。
这是来自 Adafruit BMPxxx library 的示例。
这是您可以将每个单元的从选择 (CS) 引脚传递给每个唯一对象的行的永久链接。
稍后在代码中,您可以使用 Adafruit BMPxxx 库的每个对象来获取读数。
推荐阅读
- matlab - matlab循环通过nxn矩阵陷入无限循环
- php - php中遍历数组的具体问题
- android - 构建 Appbundle (Flutter) 时密钥库密码不正确
- ios - 我可以在滑动手势的途中修复 UINavigationBar 的 TopBar
- php - 正则表达式提取另一个标签内页面上的第一个链接
- android - 在cordova项目上更新到android 7.0.0时出现问题:无法执行aapt
- reactjs - ReactRouter v5 刷新得到 404
- adb - 一台 Android 设备对另一台运行 adb logcat
- python - 跟踪有偏差的硬币翻转实验 - python 中的二项式分布
- c++ - 如何在Visual Studio 2019(16.3预览4)中启用c++20