使能I2C2后,读I2C数据时一直处于阻塞状态

Hi Dialog,

I2C1用于读IMU数据,工作正常,在这个基础上配置I2C2,使能I2C2后(添加下面代码1/2/3),通过I2C2读数据,一直处于阻塞状态,应该是卡在了ad_i2c_transac。请帮忙check是我哪里配置不对导致的,谢谢。

代码如下,

代码1:

I2C_BUS(I2C2)
#ifdef CFG_CST816D
        I2C_SLAVE_DEVICE_DMA(I2C2, CST816D, 0x6A, HW_I2C_ADDRESSING_7B, HW_I2C_SPEED_STANDARD, 4);
#endif
I2C_BUS_END

代码2:

#ifdef     CFG_CST816D
        Cst816D_Reset();
        i2c_dev2 = ad_i2c_open(CST816D);
        if(Cst816D_Probe(i2c_dev2) == true) {
                Cst816D_Init(i2c_dev2);
        }
#endif

代码3:

bool Cst816D_Probe(i2c_device i2c_dev)
{
        uint8_t chip_id_addr = 0xA7;
        uint8_t chip_id = 0;
        printf("\n\r E TP Chip Id: %x\n\r", chip_id);
        error_code = ad_i2c_transact(i2c_dev, &chip_id_addr,
                1, &chip_id, 1);
        if (error_code != 0) {
                printf("\n\r TP One Unsuccessful read transaction with error code: %d!!!\n\r",
                                                                             error_code);
        }
        printf("\n\r TP Chip Id: %x\n\r", chip_id);
        return 0;
}