在 SDK 4.30中遇到问题、器件在 I2C 发生错误后无法进入 LPDS。
将 CC3235用作 I2C 主设备并处于 I2C_MODE_CALLACK 模式。
I2C 总线上有时会出现以下错误。 我能够通过重试从这些情况中恢复。 I2C_STATUS_DATA_NACK、 I2C_STATUS_ADDR_NACK、 I2C_STATUS_ARB_LOST。
问题是在这种情况发生后、MCU 不会进入 LPDS。 I2C 继续正常工作。
如何调试该问题。 我已验证 我正在调用 I2C_CloseConnection()。 故障和成功。
下面是代码流程:
void I2C_Callback (I2C_Handle handle、I2C_Transaction * I2CTransaction_struct、bool 结果)
{
lastI2CTransStatus = I2CTransaction_struct->status;
SEM_POST (&App_CB.i2c 传输);
}
I2C_init();
I2C_Params_init (&i2cParams);
i2cParams.bitrate = I2C_400kHz;
i2cParams.transferMode = I2C_MODE_CALLACK;
i2cParams.transferCallbackFxn =(I2C_CallbackFxn)&I2C_Callback;
i2cHandle = I2C_open (CONFIG_I2C_0、&i2cParams);
I2C_transfer (i2cHandle、&i2cTransaction);
错误= SEM_timedwait (&App_CB.i2c 传输、&ts);
在错误条件下、信号量返回-1
I2C_Close (i2cHandle);
此致


