请教一下大家, CC3200 通过 I2C 怎么读取 温湿度传感器 SHT20。
Viki Shi:
可以参考这边的I2C 例程: http://processors.wiki.ti.com/index.php/CC32xx_I2C_Application
th smi:
回复 Viki Shi:
一开始 就会参考 I2C Demo。 但是读写数据, 返回值都是 -1。 不知道什么原因? 0x80 位读地址, 0x81为写地址
aucDataBuf[0] = 0xf3;
I2C_IF_Write(0x80, aucDataBuf,1,1);
I2C_IF_Read(0x81, aucDataBuf, 2);
th smi:
回复 th smi:
I2C_MASTER_ERR_ADDR_ACK 这个错误代表什么? 是地址不对吗? 读0x81 写0x80
Viki Shi:
回复 th smi:
这个是地址应答错误,还有其他报错吗?
th smi:
回复 Viki Shi:
刚才的错误解决了,是地址写错了。
现在是 I2C_IF_Write(0x40, aucDataBuf,1,0); ucStop 写0 可以, 写1 程序在这里死循环:
RET_IF_ERR(I2CTransact(I2C_MASTER_CMD_BURST_SEND_STOP));
如果在Write的时候, ucStop 写0 , 让写操作成功。
在 I2C_IF_Read(0x40, aucDataBuf, 2); 读的时候, 也卡死在
RET_IF_ERR(I2CTransact(I2C_MASTER_CMD_BURST_SEND_STOP));
请教一下是什么原因?
th smi:
回复 th smi:
这个问题,可能和 sht20 I2C 通讯, 需要CRC有关。 但我不知道怎么加CRC。 请教一下怎么加?
th smi:
回复 th smi:
cc3200 I2C 会不会有bug,(i2c_if.c) 设置了timeout, 但一直在死循环。