我用I2C驱动一个I2C芯片 用示波器观察 只看到到了 SlaveAddr 加一个字节的数据 后边的数据没有 不知道问题出在哪里?
bool SensorI2C_read(uint8_t *data, uint8_t len)
{
I2C_Transaction masterTransaction;
masterTransaction.writeCount = 0;
masterTransaction.writeBuf = NULL;
masterTransaction.readCount = len;
masterTransaction.readBuf = data;
masterTransaction.slaveAddress = VKL060_ADDR;
return I2C_transfer(i2c, &masterTransaction) == TRUE;
}
IIC_Init(); //
VKL060_Buf[0] = VKL060_ICSET|BIT1_ENSRST; // 内部时钟源 软复位 1110 1010
VKL060_Buf[1] = VKL060_ICSET; // 映射起始地址bit5 =0 1110 1000
VKL060_Buf[2] = VKL060_ADSET; // 映射起始地址 bit4~bit0=0 00000000
for(count = 3 ;count < 14;count++)
{
VKL060_Buf[count] = 0xaa;
}
SensorI2C_write(VKL060_Buf,5);
I2C_close(i2c);
Viki Shi:
参考一下官方的I2C例程:
TI 诚邀您参加全新设计的产品页面测试,参加测试即可享有 TI 购物 9 折优惠码,点击加入 EP产品页面测试报名,名额有限。感谢您的参与!