This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/CC2650:调用 func 时、无法使用带传感器 SHT21的 CC2650 Launchpad 获取温度和湿度值。 I2C

Guru**** 2579165 points
Other Parts Discussed in Thread: CC2650, HDC1000

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/814556/ccs-cc2650-cannot-obtain-values-for-temperature-and-humidity-using-cc2650-launchpad-with-sensor-sht21-when-calling-func-i2c

器件型号:CC2650
主题中讨论的其他器件: HDC1000

工具/软件:Code Composer Studio

您好!  

我使用项目(SensorTag )在 CC2650 Launchpad 中进行了开发。

并使用 ble_cc26xx_2_00_00_42893版本 SDK。

C:\ti\simplelink\ble_cc26xx_2_00_42893\Components\ti-rtos\boards\sensortag\Devices\sensor_sht21.c

下面的引脚 分配、

SCL -> DIO6

SDA -> DIO5

使用名为'senser_sht21.c'的简单代码获取温度和湿度值。
我调用了用于获取值的函数、如下所示:

//启用 SPI 和 I2C
bspI2cInit();

sensorSht21Init();

sensorSht21StartTempMeasure();
delay_ms (100);
sensorSht21LatchTempMeasure();
delay_ms (100);
sensorSht21StartHumMeasure();
delay_ms (100);
sensorSht21LatchHumMeasure();
delay_ms (100);
sensorSht21Read (&rawTemp、&rawHum);

初始设置:

void bspI2cInit (void)

Semaphore_Params semParamsMutex;

//创建保护信标
Semaphore_Params_init (&semParamsMutex);
SemParametersMutex.mode = Semaphore_Mode_binary;
Semaphore_construction (&mutex、1、&semParamsMutex);

//重置 I2C 控制器
HapiResetPeripheral (PRCM_Periph_I2C0);

I2C_init();
I2C_Params_init (&i2cParams);
i2cParams.bitrate = I2C_100kHz;
i2cHandle = I2C_open (Board_I2C、&i2cParams);

//初始化局部变量
slaveAddr = 0xFF;
接口= BSP_I2C_interface_0;

if (i2cHandle ==空)

Task_exit();

遗憾的是、它无法返回值、我在跟踪代码时发现了一个问题

bool sensorSht21Init (空)

如果(!sensor_select())
返回 false;

//设置11位分辨率
Success = sensorReadReg (SHT21_CMD_READ_U_R、USR、1);//始终在此处返回 false
if (成功)

USR &= USR_REG_RES_MASK;
USR |= USR_REG_11BITRES;
成功= sensorWriteReg (SHT21_CMD_WRITE_U_R、USR、1);

sensor_deleset();

返回成功;

使用 CC2650 SensorTag 调用函数 I2C 时、无法获取温度和湿度值。

此外、在调用 I2C 时尝试使用模块 HDC1000、它可以正常工作。

您能帮我解决问题吗?

非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    使用 HT21时、您是否将 SCL/SDA 引脚上拉至高电平?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,此 SHT21具有10k 上拉 电阻器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我建议您使用协议分析器来检查 SCL/SDA 信号是否正确。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 YiKai、

    感谢您的快速回复、

    最后、根据我的照片移除跳线后解决了问题。