https://blog.csdn.net/wwt18811707971/article/details/80034047
1.简介

法国Humirel公司新一代HTU21D温度和湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了适于回流焊的双列扁平无引脚DFN 封装, 底面3x3mm ,高度1.1mm。传感器输出经过标定的数字信号,标准 I2C 格式

HTU21D温度和湿度传感器为OEM应用提供一个准确可靠的温湿度测量数据。通过一个微控
制器的接口和模块连接达到温度和湿度数字输出。HTU21D 的分辨率可以通过输入命令进行改变(8/12bit 乃至12/14bit 的RH/T),传感器可以检测到电池低电量状态,并且输出校验和,有助于提高通信的可靠性。


2.规格参数

25摄氏度,3.3V供电时的电气特性如下:

数据手册下载地址如下:

温湿度敏感芯片传感器HTU21D

印刷板设计注意:

如果SCL 和SDA 信号线相互平行并且非常接近,有可能导致信号串扰和通讯失败。解决方法是在两个信号线之间放置VDD 或GND,将信号线隔开,或使用屏蔽电缆。此外,降低SCL 频率也可能提高信号传输的完整性。须在电源引脚(VDD, GND)之间加一个100nF 的去藕电容,用于滤波。此电容应尽量靠近传感器。

引脚定义:

本实验采用的为成品HTU21D模块,直接与 STM32 开发板连接即可。

引脚 说明
电源引脚 (VDD, GND) HTU21 的供电范围为 1.8VDC - 3.6VDC,推荐电压为 3.0V。电源(VDD)和接地(VSS)之间须连接一个0.1uF的去耦电容,且电容的位置应尽可能靠近传感器。
串行时钟输入(SCK) SCK 用于微处理器与 HTU21 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小 SCK 频率。
串行数据 (DATA) DATA 引脚为三态结构,用于读取传感器数据。当向传感器发送命令时, DATA 在 SCK 上升沿有效且在 SCK 高电平时必须保持稳定。 DATA 在 SCK 下降沿之后改变。当从传感器读取数据时, DATA 在 SCK 变低以后有效,且维持到下一个 SCK 的下降沿。为避免信号冲突,微处理器应驱动 DATA 在低电平。需要一个外部的上拉电阻(例如: 10kΩ)将信号提拉至高电平。上拉电阻通常已包含在微处理器的 I/O 电路中。

3.通讯过程

Htu21d遵循标准的 IIC 进行通信,关于 IIC 的介绍请看—>IIC专题(一)——基础知识准备。本文设计也多参考此篇文章–>STM32F10x_模拟I2C读写EEPROM。

3.1 IIC启动信号

启动传输,发送一位数据时,包括 DATA 线在 SCK 线高电平期间一个向低电平的跳变。

3.2 IIC停止信号

终止传输,停止发送数据时,包括 DATA 线在 SCK 线高电平期间一个向高电平的跳变。

3.2 IIC数据传输

SCL时钟电平为低, 可以改换SDA数据线的电平,在SCL上升沿的过程将SDA数据发送出去。SCL为高电平时,SDA上的数据保持稳定。

I2C 是以字节(8位)的方式进行传输,总线上每传输完1字节之后会有一个应答信号,应答信号总是由接收方来产生。通信过程的时钟由主器件(主机)提供。

IIC 写一字节:

数据发送结束,进行应答操作。
0:表示从机应答,可以继续下一步操作;
1:表示从机非应答,不能进行下一步操作。

IIC读一字节:

IIC读取操作类似于发送,只是传输数据方向相反。

3.3 IIC应答信号处理

等待应答:

产生应答:

产生非应答:


4.HTU21D数据测量

测量命令如下表:

本文采用非保持主机:
//非主机模式

#define HTU_TEMP    0xf3
#define HTU_HUMI    0Xf5
  • 1
  • 2

在非主机模式下, MCU 需要对传感器状态进行查询。此过程通过发送一个启动传输时序,之后紧接着是如图所示的I2C 首字节(1000’0001)来完成。如果内部处理工作完成,单片机查询到传感器发出的确认信号后,相关数据就可以通过MCU 进行读取。如果测量处理工作没有完成,传感器无确认位(ACK)输出,此时必须重新发送启动传输时序。

传感器初始化:

传感器数据读取与转换:

传感器内部设置的默认分辨率为相对湿度12位和温度14 位。 SDA 的输出数据被转换成两个字节的数据包,高字节MSB 在前(左对齐)。每个字节后面都跟随一个应答位。两个状态位,即LSB 的后两位在进行物理计算前须置‘0’。

转换计算如下图:

源代码实现:

显示方式:

本实验通过串口打印和 TFTLCD 显示,串口打印有助于程序的调试。

对于测量出来float的数值如何直接显示到LCD上,代码中简要的介绍了两种方式:
LCD显示方式1:sprintf函数将结果打印到test数组里,转换成字符串显示(LCD_ShowString)。
LCD显示方式2:将得到的数值拆分成整数和小数直接显示在液晶(LCD_ShowxNum)。
液晶显示直接参考正点原子的驱动。


源代码下载请转到—->I2C_Software_Htu21d

不足之处请大家一起交流。


参考:

1.STM32F10x_模拟I2C读写EEPROM
2.正点原子库函数

STM32驱动温湿度传感器HTU21D相关推荐

  1. STM32 驱动温湿度传感器 HTU21D

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. github:my github 注:博客所涉及的关于 stm32 的代码 ...

  2. 【linux驱动开发】i2c驱动框架之温湿度传感器htu21d

    文章目录 一.linux内核i2c驱动框架 1.1 i2c适配器 1.2 i2c设备驱动 1.3 i2c设备驱动匹配过程 二.温湿度传感器htu21d 三.htu21d设备驱动编写 3.1 修改设备树 ...

  3. K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示

    K_A13_001 基于STM32驱动霍尔开关传感器 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 STM32 ...

  4. 【GD32片上i2c外设应用】温湿度传感器htu21d

    文章目录 一.温湿度传感器htu21d介绍 1.1 参数 1.1.1 湿度参数 1.1.2 温度参数 1.2 芯片i2c协议 1.2.1 器件地址 1.2.2 读取温湿度 1.2.3 芯片复位 二.g ...

  5. sht20中写用户寄存器_数字输出温湿度传感器HTU21D和SHT21对比评测(图文)

    超小体积的温湿度一体数字输出模块由于体积小,精度高的特点,广泛应用于手机.通讯.HVAC.医疗.环境监测.家用电器.控制板等,近日从深圳市工采网(ISweek)拿到市面上最常用的HTU21D和SHT2 ...

  6. 基于I2C协议利用STM32进行温湿度传感器的数据采集

    目录 一.I2C总线通信协议的介绍 1.I2C简介 2.I2C总线时序图 3.五种速率 4.四种信号 5.I2C的优缺点 6.软件IIC和硬件IIC 二.创建工程 1.实验目的 2.工具的选择 3.相 ...

  7. HT66F2390/STM32——AM2320温湿度传感器

    1.说明 AM2320 数字温湿度传感器采用单总线.标准 I²C 两种通信方式.本文主要基于HT66F2390单片机,采用单总线通讯,实现AM2320传感器数据获取.关于AM2320传感器的使用,可参 ...

  8. STM32使用温湿度传感器

    前言 MDK5(Keil5)软件:uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具. 本项目采用ARM结构中最为代表的Cortex ...

  9. 嵌入式 STM32 SHT31温湿度传感器

    目录 简介 1.原理图 2.时序说明 数据传输 起始信号 结束信号 3.SHT31读写数据 SHT31指令集 读数据 温湿度转换 4.温湿度转换应用 sht3x初始化 读取温湿度 简介 什么是SHT3 ...

最新文章

  1. 总结—什么妖引起的MongoDB副本集初始化失败?
  2. 【学习笔记】网络层——IPv6:地址表示、IPv4的对比、IPv4过渡到IPv6、基本地址类型等
  3. java并发:初探消费者和生产者模式
  4. mro列表_MRO模块操作指导书
  5. 通过一个对数据的存储和分析的简单实例初识Hadoop
  6. pytorch 如何将张量、类实例、函数放到GPU上
  7. 记录QT在实时显示摄像头数据时候切换TAB页出现异常
  8. 修改SAP下载文件路径
  9. Linux从入门到放弃(1)教学视频推荐以及一些经验分享
  10. 软件测试的八股文内容
  11. trajan 算法 离线求lca
  12. Python爬虫的数据提取,一篇博客就搞定啦!
  13. radio RDS功能简介
  14. 《Java并发编程实战》【第一部分 基础知识】
  15. 一、全文检索引擎的介绍
  16. [乐意黎]合同条款里的包括但不限于的确切含义
  17. 超详细!apk安装包快速反编译,多种反编译及失败的解决方案(包含classes.dex的反编译,新增加快速反编译)
  18. Win7 瘦身 winsxs文件夹
  19. 将文件打包成zip包
  20. 数据库基础面试题-JDBC连接池实现方式

热门文章

  1. 百度文库里面的文档无法复制,如果要下载需要下载券,如何免费复制文档呢?
  2. 如何用php压缩html代码并输出
  3. 计算机科学美在哪些方面,揭秘美本-计算机科学专业是什么? 爱问知识人
  4. Html+Css实现——时间轴日志
  5. python 今日头条 微头条_今日头条的入门,其实就是‘微头条’
  6. 五子棋基本玩法-AI实现
  7. 自由幻想java_使用按键精灵脚本实现《自由幻想》游戏内神医验证码自动校验...
  8. 网络信息安全对抗(北京邮电大学版)考点总结
  9. Robust High-Resolution Video Matting with Temporal Guidance(具有时间引导的稳健高分辨率的实时视频抠图) 阅读笔记
  10. Nike+ Fuelband SE不能激活无法连接的请看这里。