1. 项目概述
HTS221TR是一款数字式温湿度传感器,广泛应用于物联网设备、环境监测系统和工业控制领域。这个项目展示了如何在STM32F4系列MCU上,使用HAL库驱动HTS221TR传感器,实现高精度的温湿度数据采集。
我在工业自动化项目中多次使用这款传感器,它的±0.5°C温度精度和±3.5%RH湿度精度完全能满足大多数应用场景。相比DHT系列传感器,HTS221TR采用I2C接口,抗干扰能力更强,特别适合在电磁环境复杂的场合使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件准备与电路设计
2.1 元器件选型
- 主控芯片:STM32F407VET6(其他F4系列型号也适用)
- 传感器:HTS221TR(DFN6封装,2x2mm)
- 其他:10K上拉电阻x2,0.1uF去耦电容
注意:HTS221TR有LGA和DFN两种封装,建议选择DFN封装便于手工焊接。采购时注意区分HTS221(无TR后缀)与HTS221TR,后者是车规级版本,性能更稳定。
2.2 电路连接方案
code复制VDD → 3.3V
GND → GND
SCL → PB6(I2C1_SCL)
SDR → PB7(I2C1_SDA)
实际布线时要注意:
- I2C线路长度不超过30cm
- SCL/SDA线需等长走线
- 电源线就近放置去耦电容
3. 软件环境配置
3.1 开发工具链
- IDE:STM32CubeIDE 1.11.0
- HAL库版本:STM32F4xx HAL V1.8.0
- 编译器:ARM GCC 10.3-2021.10
安装完成后,在CubeMX中做如下配置:
- 启用I2C1外设
- 时钟配置为100KHz标准模式
- 开启I2C中断(可选)
3.2 工程设置要点
在CubeIDE中需要特别检查:
- 链接脚本中堆栈大小(建议最小Stack=0x400, Heap=0x200)
- 优化等级设为-O1(调试阶段)或-O2(发布版本)
- 勾选"Use float with printf"选项
4. 驱动程序实现
4.1 寄存器定义
首先定义传感器寄存器地址:
c复制#define HTS221_WHO_AM_I 0x0F
#defin
