哈哈~~~必须暂存ACK信号,这样时序才能继续且完整~~~
ask_date=SDA; SCL=0
HRESULT CVIFUNC I2C_GetAck(void) { HRESULT __result = S_FALSE; int i; for (i = 0; i < I2C_waitAckDelay; i ++) { if (I2C_GetSDA() == 0) //释放数据总线读数据总线 { __result = S_OK; break; } } I2C_SetSCL();//拉高时钟 I2C_ClrSCL();//拉低时钟 I2C_ClrSDA();//保证SDA=SCL=0 return __result;//SDA=1,SCL=0 } 相关链接:https://bbs.21ic.com/club/bbs/showEssence.asp?id=8532&page=2
|
|