主题中讨论的其他器件: 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、它可以正常工作。
您能帮我解决问题吗?
非常感谢!



