目录

简介

1、原理图

2、时序说明

数据传输

起始信号

结束信号

3、SHT31读写数据

SHT31指令集

读数据

温湿度转换

4、温湿度转换应用

sht3x初始化

读取温湿度


简介

什么是SHT31?  一主机多从机--通过寻址的方式--每个从机都有唯一的地址(器件地址0x44+引脚地址)<<1 + 读写位(读1写0)

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

1、原理图

配置为通用开漏输出

PB6--SCL

PB7--SDA

器件地址  引脚地址--ADDR引脚的高低电平

0x44+  0

1

2、时序说明

数据传输

SDA 引脚用于传感器的数据输入和输出。当向传感器发送命令时, SDA 在串行时钟(SCL)的上升沿
有效, 且当 SCL 为高电平时, SDA 必须保持稳定。在 SCL 下降沿之后, SDA 值可被改变。为确保通讯
安全, SDA 的有效时间在 SCL 上升沿之前和下降沿之后应该分别延长至 TSU and THO -参考图 9。当从传感器读取数据时, SDA 在 SCL 变低以后有效(TV),且维持到下一个 SCL 的下降沿 。

为避免信号冲突,微处理器(MCU)必须只能驱动SDA 和 SCL 在低电平。需要一个外部的上拉电阻(例如: 10kΩ)将信号提拉至高电平。上拉电阻通常可能已包含在微处理器的 I/O 电路中。

起始信号

结束信号

3、SHT31读写数据

SHT31指令集

了解一下如下SHT31命令集:

读数据

工作顺序为:先发送IIC通信开始标志Start后,写入左移一位的地址,并将空出来的位写0表示写数据。当收到传感器应答后,即可发送命令的高八位,再次等待应答,再发送余下的低八位。然后等待ACK应答即可。

(读 R:‘1’,写 W:‘0’)。在第 8 个 SCL时钟下降沿之后,通过拉低 SDA 引脚(ACK 位),指示传感器数据接收正常。

校验:发送一次读取指令,收到6字节数据;期中1、2字节数温度的,第三字节是温度的校验字节;4、5字节是湿度的,第6字节是湿度的校验字节。校验方式采用。

温湿度转换

4、温湿度转换应用

sht3x初始化

读取温湿度

/*********************************************************************************************************
* 函 数 名 : Sht3x_Read_TemperatureHumidity
* 功能说明 : 读取SHT3x温湿度数据
* 形    参 : HT:存储温湿度的结构体指针
* 返 回 值 : 无
*********************************************************************************************************/
int Sht3x_Read_TemperatureHumidity(Sht3x_TypeDef *temp)
{unsigned char buff[6] = {0};unsigned char i = 0;IIC_Start();                                     //起止信号IIC_WriteByte(SHT3X_ADDR<<1 | IIC_WRITE);           //器件地址+写if(IIC_Wait_ACK() == ACK){                           //对方应答了,继续执行IIC_WriteByte(SHT3X_READ_TEMP_HUM>>8);         //命令的高位if(IIC_Wait_ACK() == ACK){                     //对方应答了,继续执行IIC_WriteByte(SHT3X_READ_TEMP_HUM&0xff); //命令的低位if(IIC_Wait_ACK() == ACK){                 //对方应答了,继续执行do{if(++i > 20){return 4;}IIC_Stop();Delay_Ms(2);                           //等待对方采集好数据IIC_Start();IIC_WriteByte(SHT3X_ADDR<<1 | IIC_READ);//询问是否采集好了数据}while(IIC_Wait_ACK() != ACK);                //如果条件成立,表示传感器采集数据未完成for(i=0; i<5; i++){buff[i] = IIC_ReadByte(ACK);}buff[5] = IIC_ReadByte(NACK);IIC_Stop();}//转换温湿度
if(crc8(buff, 2) == buff[2] && crc8(&buff[3], 2) == buff[5])
{temp->temperature = (buff[0]<<8|buff[1])/65535.0*175-45;temp->humidity = (buff[3]<<8|buff[4])/65535.0*100;
}

嵌入式 STM32 SHT31温湿度传感器相关推荐

  1. stm32+HTU21D温湿度传感器通过usart1发送温湿度数据在串口助手显示

    stm32+HTU21D温湿度传感器 这里就不拍实物图了,我用的是下面这款HTU21D ic是stm32f103vet6 工程代码是io口模拟i2c和传感器通讯 PB6-SCL,PB7-SDA usa ...

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

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

  3. 嵌入式Linux温湿度报警系统,嵌入式Linux下温湿度传感器的设计与实现

    采集 温湿度 计算机系统应用 年第 期 嵌入式 下温湿度传感器的设计与实现① 陈博刘锦高 摘要 华东师范大学电子科学技术系上海 在嵌入式应用领域,需要测量周围环境的质量对生产和工作进行监控和预警.通过 ...

  4. STM32使用温湿度传感器

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

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

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

  6. SHT-31温湿度传感器资料整理

    传感器介绍:SHT-31是一款低成本环境温湿度检测模块. 工作电压 2.4-5.5v 功耗小,体积小,采用DFN封装工艺.其工作原理,是通过单片机读取温度湿度数据,IIC通信方式输出. 传感器特点:体 ...

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

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

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

    https://blog.csdn.net/wwt18811707971/article/details/80034047 1.简介 法国Humirel公司新一代HTU21D温度和湿度传感器在尺寸与智 ...

  9. MSP430 单片机 SHT30 SHT31 温湿度传感器 MSP430F5529 MSP430G2553 程序

    SHT30和SHT31程序是一样的 手册是一样的 寄存器是一样的 操作都是一样的. 唯一 不同点是:SHT31的湿度波动小,测量较准确. 推荐打开SHT3X的周期测量模式,然后一直循环读取寄存器即可, ...

最新文章

  1. 我的学习之路_第十八章_SQL语句
  2. 万字长文 | 一文带你读懂账号体系
  3. 可以忽略的:BASH:/:这是一个目录
  4. 使用matlab内存不足,Matlab内存不足问题(Out of memory)
  5. 前端学习(1815):前端调试之css flex 练习1
  6. vue 修改模板{{}}标签_vue-admin-template模板添加tagsview
  7. 腾讯大数据之TDW计算引擎解析——Shuffle
  8. SCOM2012SP1环境准备和安装
  9. RFC2616中文版(8)连接
  10. 开课吧:为什么AI工程师都要懂一点架构呢?
  11. java经典算法(二)---zws
  12. 数据库设计-视图与中间表的比较
  13. 解决Ubuntu系统上网速度慢的问题
  14. OPCClient远程连接OPC服务器配置手册
  15. 计算机名词解释显存,显卡名词解释之显存类型
  16. JavaScript 生成弹性透明的图片放大代码
  17. java生成二维码合成背景图
  18. 程序员跳槽一次到底能涨多少?今天带你见识下跳槽天花板
  19. 计算机 修改 虚拟ip,怎么样在电脑中设置虚拟IP地址?
  20. 关于C语言中的重点转义字符详解

热门文章

  1. 关于Resnet网络中残差连接实线与虚线的含义
  2. Android小提示六
  3. 新形势下国家医疗保障局信息化建设注意点(一)概述
  4. (Java)String截取指定字符前面(后面)所有字符和String的常用方法
  5. 一年Android工作经验,今日头条 阿里 百度 网易 美团 小米 快手面经
  6. android分屏模式_安卓 7.0 分屏功能详解:三种模式,想分就分
  7. java使用redis缓存对象
  8. Redis能够存储java对象吗?
  9. unity 获取字符串长度及获取不重复数字
  10. 厌倦了编程书?来试试这3种提高编程技能的有趣方法吧