请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:IWR1642BOOST 您好!
我尝试通过 I2C 协议将 IWR 传感器作为从设备连接到 Arduino 板。 我正在使用 I2C 驱动程序。 Arduino 上用于 I2C 的线库仅支持7位寻址。 IWR 驱动程序表示它支持10位和7位寻址。
我使用 SDK 中 drivers/i2c/test/slave.c 单元测试示例中的大多数初始化代码(MMWAVE_SDK_01_00_00_05)。 当我将 I2C 驱动程序配置为使用10位寻址模式时、不会出现错误。 但是当我使用7位寻址模式进行配置时、会出现以下打印输出错误:
错误:I2C 控制集 XA 失败[错误代码-20001]
以下是初始化函数:
int32_t I2CSlave_Init (void)
{
I2CSlave_handle i2cHandle;
I2CSlave_Params i2cParams;
内部32_t 错误代码= 0;
uint32_t ARG;
PlatformInit();
/*设置传输缓冲区*/
memset (&txProxObjData、0、sizeof (txProxObjData));
/*初始化 I2C 从驱动程序*/
I2CSlave_init();
/*初始化 I2C 驱动程序默认参数*/
I2CSlave_Params_init (&i2cParams);
i2cParams.transferMode = I2CSLAVE_MODE_BLOCKING;
i2cParams.slaveAddress = 0x48;
/*打开 I2C 从驱动程序*/
i2cHandle = I2CSlave_open (0、&i2cParams);
if (i2cHandle ==空)
{
System_printf ("错误:I2C 驱动程序打开失败\n");
返回-1;
}
//System_printf ("调试:通过 I2C 从设备打开\n");
/*以7位或10位地址模式配置 I2C 器件。 *
ARG = 1;
errCode = I2CSlave_control (i2cHandle,0,(void*)&arg);//第二个参数:0将寻址模式设置为7位,1将寻址模式设置为10位
如果(错误代码< 0)
{
System_printf ("错误:I2C 控制集 XA 失败[错误代码%d]\n"、错误代码);
返回-1;
}
//System_printf ("调试:通过 I2C 从机控制\n");
返回0;
}
感谢你能抽出时间。
Herman