关注

SHT4x温湿度传感器嵌入式驱动库设计与I²C协议实现

1. 项目概述

nahs-Bricks-Lib-SHT4x 是一个面向嵌入式平台的轻量级驱动库,专为 Sensirion 公司 SHT4x 系列数字温湿度传感器设计。该库不依赖特定硬件抽象层(HAL)或实时操作系统(RTOS),采用纯 C 语言编写,以头文件 + 源文件形式提供,具备高度可移植性。其核心目标是为 STM32、ESP32、nRF52、RP2040 等主流 MCU 平台提供稳定、低开销、符合工业级时序要求的 I²C 接口访问能力。

SHT4x(含 SHT40、SHT41、SHT45)是 Sensirion 第四代 CMOSens® 温湿度传感器,采用单芯片集成传感元件与信号调理电路,具有 ±0.2°C 温度精度(±0.1°C 典型值)、±1.0% RH 湿度精度(±0.8% RH 典型值)、0.01% RH 分辨率、超低功耗(典型待机电流仅 0.15 µA)以及内置 CRC 校验机制。其 I²C 接口支持标准模式(100 kbps)、快速模式(400 kbps)及快速模式+(1 Mbps),地址固定为 0x44 (7 位地址),无地址选择引脚,简化了多传感器布线。

nahs-Bricks-Lib-SHT4x 的设计哲学是“最小侵入、最大可控”:它不封装 I²C 总线操作,而是将底层 I²C 读写函数(如 i2c_write_bytes i2c_read_bytes )作为回调接口暴露给用户,由开发者在初始化时注册。这种设计避免了对 HAL 库(如 STM32 HAL_I2C_Transmit/Receive)或 LL 库(如 LL_I2C_HandleTransfer)的硬依赖,使库可在裸机、FreeRTOS、Zephyr、RT-Thread 等任意环境下无缝集成,同时赋予开发者对总线时序、错误重试、DMA 配置等关键环节的完全控制权。

该库并非功能堆砌型 SDK,而是聚焦于传感器协议栈的核心——命令执行、数据解析与 CRC 验证。所有 SHT4x 官方命令(包括高精度、中精度、低功耗三种测量模式,以及 Heater 开关、序列号读取、软复位等)均被完整映射为 C 枚举与函数接口;所有原始 ADC 值到物理量(°C / %RH)的转换公式均严格遵循 Sensirion 数据手册(SHT4x Datasheet Rev. 1.1, 2022)第 9 节“Output Data Format”所定义的 IEEE 754 单精度浮点数计算逻辑,确保跨平台结果一致性。

2. 核心功能与协议实现

2.1 SHT4x 命令集映射与执行流程

SHT4x 通过向其 I²C 地址发送 2 字节命令码触发内部测量或配置操作。 nahs-Bricks-Lib-SHT4x 将全部 12 条官方命令抽象为 sht4x_cmd_t 枚举类型,并通过统一的 sht4x_send_command() 函数执行。该函数不直接操作硬件,而是调用用户注册的 i2c_write_bytes 回调,将命令字节写入设备。

命令枚举值 命令码 (Hex) 功能描述 典型响应长度 工程适用场景
SHT4X_CMD_MEASURE_HIGH_PRECISION 0x24 高精度测量(温度+湿度) 6 字节(2×16bit ADC + 2×8bit CRC) 环境监测站、医疗设备校准
SHT4X_CMD_MEASURE_MEDIUM_PRECISION 0x21 中精度测量(温度+湿度) 6 字节 工业控制器、楼宇自控节点
SHT4X_CMD_MEASURE_LOW_POWER 0x22 低功耗测量(温度+湿度) 6 字节 电池供电 IoT 终端、穿戴设备
SHT4X_CMD_MEASURE_HIGH_PRECISION_HEATER_ON 0x39 高精度测量 + 加热器开启(200ms) 6 字节 冷凝环境防结露、高湿工况补偿
SHT4X_CMD_READ_SERIAL_NUMBER 0x89 读取 6 字节唯一序列号 6 字节 设备身份认证、固件绑定、产线烧录验证
SHT4X_CMD_SOFT_RESET 0x94 软复位(恢复默认配置) 0 字节 初始化失败后恢复、OTA 升级后重置

执行流程严格遵循数据手册时序要求:

  1. 主机发起 I²C START;
  2. 发送设备地址( 0x44 )+ WRITE 位;
  3. 发送命令码高字节(如 0x24 );
  4. 发送命令码低字节(如 0x00 ,SHT4x 所有命令低字节均为 0x00 );

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/weixin_42612405/article/details/159478689

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--