请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TCA9548A 主题中讨论的其他器件: LM36011
您好!
在我的设计中、我使用两个 TCA9548A 连接到 Arduino UC 的同一 I2C 总线、并将8个 LM36011 LED 驱动器连接到每个 TCA9548A。 所有 LM36011 LED 驱动器都具有相同的 I2C 地址。
我使用 A2-A0引脚设置了唯一的 I2C 地址、因此它们具有不同的地址、例如、一个是0x70、另一个是0x71。
当我使用 Wire.h 库调用0x70器件的 CH1时会发生奇怪的情况、0x71中的某些通道也在响应、但0x70中的所有其他通道都保持安静(这是预期的)。
我使用的代码如下所示。
- #include "Wire.h"
- extern "C"{
- #include "utility/twi.h"
- }
- #define TCAADDR_A 0x70
- #define TCAADDR_B 0x71
- void tcaselect (uint8_t i){
- 如果(I > 7)返回;
- Wire.beginTransmission(TCAADDR_A);
- Wire.write (1 << I);
- wire.endTransmission ();
- void tcaselect (uint8_t i){
- 如果(I > 7)返回;
- Wire.beginTransmission(TCAADDR_B);
- Wire.write (1 << I);
- wire.endTransmission ();
- }
从0x71器件响应的通道似乎是随机的、它因电路板而异。
一定会有问题、但我不太理解为什么会发生。 可以帮帮你吗?