请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC1312R 您好!
我想从 I2C 的传感器(SHT40)读取温度数据。
我的代码如下所示。
/* Common I2C transaction setup */
i2cTransaction.writeBuf = txBuffer;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer;
i2cTransaction.readCount = 6;
i2cTransaction.targetAddress = SHT4X_I2C_ADDR;
txBuffer[0] = 0xfd;
if (I2C_transfer(i2c, &i2cTransaction))
{
uint16_t t_ticks, rh_ticks;
uint8_t checksum_t, checksum_rh;
float t_degC, rh_pRH;
t_ticks = rxBuffer[0] * 256 + rxBuffer[1];
checksum_t = rxBuffer[2];
rh_ticks = rxBuffer[3] * 256 + rxBuffer[4];
checksum_rh = rxBuffer[5];
t_degC = -45 + 175 * (t_ticks / 65535.);
rh_pRH = -6 + 125 * (rh_ticks / 65535.);
if (rh_pRH > 100)
{
rh_pRH = 100;
}
if (rh_pRH < 0)
{
rh_pRH = 0;
}
DBG("%f C, %f %%", t_degC, rh_pRH);
}
但是、无法正确读取。
应读取6个字节。 但 CC1312 仅生成1字节时钟并确实停止运行。

问题是什么?
Br
保罗