TI中文支持网
TI专业的中文技术问题搜集分享网站

请问CC2640r2f使用I2C挂载了两个设备,其中一个加速度寄存器设备可以写入寄存器,另一个光电传感器无法写入寄存器,也无法读取。

这个是拿官方例程改的。

下面是加速传感器的写和读程序。

#define Slave_Addr        0x18

bool HwI2CSet(uint8_t RegAddr, uint8_t WriteBuf)
{
bool ret = false;
uint8_t buf[2] = {0};
buf[0] = RegAddr;
buf[1] = WriteBuf;
I2C_Transaction i2cTransaction;
i2cTransaction.writeBuf = buf;
i2cTransaction.writeCount = 2;
i2cTransaction.readBuf = NULL;
i2cTransaction.readCount = 0;
i2cTransaction.slaveAddress = Slave_Addr;
i2cTransaction.arg = NULL;
ret = I2C_transfer(I2CHandle, &i2cTransaction);
return ret;
}

/*********************************************************************
* @fn GY_I2C_GET
*
* @brief 读取寄存器(读取寄存器中的值)
*
* @param .
*
* @return None.
*/
bool HwI2CGet(uint8_t RegAddr, uint8_t *ReadBuf, uint8_t ReadLen)
{
bool ret = false;
I2C_Transaction i2cTransaction;
i2cTransaction.writeBuf = &RegAddr;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = ReadBuf;
i2cTransaction.readCount = ReadLen;
i2cTransaction.slaveAddress = Slave_Addr;
i2cTransaction.arg = NULL;
ret = I2C_transfer(I2CHandle, &i2cTransaction);
return ret;
}

另外一个设备只修改了 从及设备地址。另一个设备原理图如下。

Alvin Chen:

单独挂在你的光电设备是否可以正常读写?

Alvin Chen:

I2Cdemo :
dev.ti.com/…/node

user5831375:

回复 Alvin Chen:

不能。

Alvin Chen:

回复 user5831375:

那说明应该是你这个传感器的问题,你再看看这个传感器的资料。

赞(0)
未经允许不得转载:TI中文支持网 » 请问CC2640r2f使用I2C挂载了两个设备,其中一个加速度寄存器设备可以写入寄存器,另一个光电传感器无法写入寄存器,也无法读取。
分享到: 更多 (0)