我正在使用连接到 Adafruit TCA9548A 1:8 多路复用器板的 Nucleo32L031 板。我的
电路板设置正确,Vcc = 3.3,GND,SCA 和 SCL 引脚双重检查。我有一个 Sparkfun TMP102 温度传感器板连接到 TCA9548A 的端口 0。
我将 mux 通道设置为:
HAL_StatusTypeDef ret;
uint16_t TCA9548A_ADDR = (0x70 << 1); //默认地址为0x70
uint8_t current_buf[3];
channel_buf[0] = 0;
ret = HAL_I2C_Master_Transmit(&hi2c1, TCA9548A_ADDR, channel_buf, 1, 15000); // 将 TCA9548A 输出通道设置为端口 0
ret = OK 这里
然后我尝试与温度传感器 TMP102
通信:
uint16_t SEN_13314_ADDR = (0x48 << 1); // 默认地址是 0x48
uint8_t temp_buf[3];
ret = HAL_I2C_Master_Receive(&hi2c1, SEN_13314_ADDR, temp_buf, 2, 5000);
ret != OK 这里
我检查了所有的引体向上都是正确的。如果我将 TMP102 I2C 线直接连接到 Nucleo 的 I2C 线,我可以读取温度。我只是不能使用多路复用器。
有人成功使用过TCA9548A芯片吗?有任何想法吗?