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; }
Hi,
感谢提问,
请问有试过官方sdk中的I2C例程吗
Br
Martin