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

cc3200 I2C 读取SHT20

请教一下TI工程师,

在其他单片机上, 已通过模拟I2C的方式正确读取SHT20温湿度。

但在cc3200上

写操作成功:

aucDataBuf[0] = 0xf5;
I2C_IF_Write(0x40, aucDataBuf,1,0);

读操作,能正确读取数据:

aucDataBuf[0] = 0;
aucDataBuf[1] = 0;
I2C_IF_Read(0x40, aucDataBuf, 2);

但在最后的地方卡死了。

//
// Complete the last reception    
//
RET_IF_ERR(I2CTransact(I2C_MASTER_CMD_BURST_RECEIVE_FINISH));

//  I2CTransact 函数体 此处死循环
// Wait until the current byte has been transferred.
// Poll on the raw interrupt status.
//
while((MAP_I2CMasterIntStatusEx(I2C_BASE, false) & (I2C_INT_MASTER | I2C_MRIS_CLKTOUT)) == 0)
{
}

根据上面模拟I2C, 我猜想是不是ACK的问题?  任何朋友能够给我一些建议吗? 谢谢。

th smi:

补一张图, 模拟I2C方式, ACK、NACK

Terry Han:

建议使用示波器直接在I2C上的SDA和SCL的上进行波形的抓取,通过波形很容易的看出软件模拟出现了哪些问题,时序上的问题也容易看出

赞(0)
未经允许不得转载:TI中文支持网 » cc3200 I2C 读取SHT20
分享到: 更多 (0)