本软件包是基于RT-Thread实现的TI HDC1000 温湿度传感器提供的通用传感器驱动包。通过使用此软件包,开发者可以快速的利用 RT-Thread 将此传感器驱动起来。
本篇文档主要内容如下:
- 传感器介绍
- 支持情况
- 使用说明
HDC1000是德州仪器(TI)生产的一款集成式湿度和温度传感器,其能够以超低功耗提供出色的测量精度。
| 传感器 | 测量范围 | 测量精度 | 
|---|---|---|
| 温度 | -40°C 至 125°C | ±0.2°C | 
| 湿度 | 0% 至 100% | ±3% | 
- 平均电源电流(每秒测量 1 次 ): 1.2µA @ RH(11 位)+ 温度(11 位)
| 包含设备 | 温度计 | 湿度计 | 
|---|---|---|
| 通讯接口 | ||
| IIC | √ | √ | 
| SPI | ||
| 工作模式 | ||
| 轮询 | √ | √ | 
| 中断 | ||
| FIFO | ||
| 电源模式 | ||
| 掉电 | ||
| 低功耗 | √ | √ | 
| 普通 | ||
| 数据输出速率 | ||
| 测量范围 | ||
| 自检 | √ | √ | 
| 多实例 | 
- RT-Thread 4.0.0+
- Sensor 组件
- IIC 驱动:HDC1000 设备使用 IIC 进行数据通讯,需要RT-Thread系统 IIC 驱动框架支持;
使用 HDC1000 软件包需要在 RT-Thread 的包管理中选中它,具体路径如下:
RT-Thread online packages --->
    peripheral libraries and drivers --->
        sensors drivers --->
            [*] HDC1000: HDC1000 sensor driver package --->
                    Version (latest)  --->
HDC1000: HDC1000 sensor driver package:使能湿度计&温度计
Version:软件包版本选择
HDC1000 软件包初始化函数如下所示:
int rt_hw_hdc1000_init(const char *name, struct rt_sensor_config *cfg);
该函数需要由用户调用,函数主要完成的功能有,
- 设备配置和初始化(根据传入的配置信息,配置接口设备);
- 注册相应的传感器设备,完成 HDC1000 设备的注册;
#include "sensor_ti_hdc1000.h"
int rt_hw_hdc1000_port(void)
{
  struct rt_sensor_config cfg;
  rt_int8_t result;
  cfg.intf.dev_name = "i2c1";
  cfg.intf.user_data = (void *)HDC1000_ADDR_DEFAULT;
  cfg.irq_pin.pin = RT_PIN_NONE;
  result = rt_hw_hdc1000_init("hdc1000", &cfg);
  return result;
}
INIT_APP_EXPORT(rt_hw_hdc1000_port);
void application_get_sensor_val(void)
{
  struct rt_sensor_data sensor_data;
  rt_size_t res;
  rt_device_t dev = RT_NULL;
  dev = rt_device_find("temp_hdc1000");
  if (rt_device_open(dev, RT_DEVICE_FLAG_RDWR) != RT_EOK)
  {
      LOG_E("open device failed!");
      return;
  }
  res = rt_device_read(dev, 0, &sensor_data, 1);
  if (res != 1)
  {
      LOG_E("read data failed!size is %d", res);
  }
  else
  {
      LOG_I("temp:%3d.%dC, timestamp:%5d", sensor_data.data.temp / 10, sensor_data.data.temp % 10, sensor_data.timestamp);  
      LOG_I("humi:%3d.%dC, timestamp:%5d", sensor_data.data.humi / 10, sensor_data.data.humi % 10, sensor_data.timestamp);
  }
  rt_device_close(dev);
}
- 新的设计推荐使用换代产品HDC2010代替HDC1000,两者具有相似的功能。HDC2010具有更好的特性,但是硬件接口与软件(寄存器)接口不兼容。
维护人: