主题中讨论的其他器件: CC2340R5
工具/软件:
你(们)好 产品营销工程师。
将 CC2340R5-Q1作为 I2C 目标运行时、会出现问题。 您能否找出任何可能的原因?
我们使用 SDK 版本:8.40。
我基于外设软件将 I2C 目标函数添加到 Basic BLE 工程的角色中。
另一个 IC 用作主器件、可读取5个字节的数据。
CC2340R5-Q1能够向目标地址+ R 输出 ACK
但是、另一个 IC 不会输出数据第一个字节的 ACK。 另一个 IC 可能存在问题、但观察 SDA 的波形(请参阅下图中的红色帧)、似乎另一个 IC 尝试在低电平下使用 SDA、但它仍然处于高电平。
您能告诉我、如果问题源于 CC2340R5-Q1、可能是什么原因导致的? 我还将在下面附上代码。
void i2ctarget_trans(char* dunny) { I2CTarget_Params i2ctarget_params; I2CTarget_init(); I2CTarget_Params_init(&i2ctarget_params); i2ctarget_params.eventCallbackFxn = Callbackfxn_i2ctareget; i2ctarget_params.targetAddress = 0x42; i2ctarget_handle = I2CTarget_open(CONFIG_I2CTARGET_0, &i2ctarget_params); read_counter = 0; write_counter = 0; I2CTarget_start(i2ctarget_handle); } int_fast16_t Callbackfxn_i2ctareget(I2CTarget_Handle handle, I2CTarget_Event event, uint8_t *val) { if(event == I2CTarget_Event_WRITE_RECEIVED) { read_buffer[read_counter] = *val; ++read_counter; return I2CTarget_STATUS_SUCCESS; } if(event == I2CTarget_Event_READ_REQUESTED || event == I2CTarget_Event_READ_PROCESSED) { *val = write_buffer[write_counter]; ++write_counter; return I2CTarget_STATUS_SUCCESS; } if (event == I2CTarget_Event_STOP) { BLEAppUtil_invokeFunctionNoData(i2ctaregt_fin); } return I2CTarget_STATUS_SUCCESS; } void i2ctaregt_fin(char* dunny) { I2CTarget_close(i2ctarget_handle); }
此致。