嵌入式 STM32 SHT31温湿度传感器

这篇具有很好参考价值的文章主要介绍了嵌入式 STM32 SHT31温湿度传感器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

简介

1、原理图 

2、时序说明 

数据传输

起始信号 

结束信号 

3、SHT31读写数据 

SHT31指令集

读数据 

温湿度转换

4、温湿度转换应用 

sht3x初始化

读取温湿度 


简介

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

嵌入式 STM32 SHT31温湿度传感器

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

嵌入式 STM32 SHT31温湿度传感器

1、原理图 

嵌入式 STM32 SHT31温湿度传感器

 

配置为通用开漏输出

PB6--SCL   

PB7--SDA

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

0x44+  0

           1

嵌入式 STM32 SHT31温湿度传感器

 嵌入式 STM32 SHT31温湿度传感器

2、时序说明 

数据传输

嵌入式 STM32 SHT31温湿度传感器

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

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

嵌入式 STM32 SHT31温湿度传感器

起始信号 

嵌入式 STM32 SHT31温湿度传感器

结束信号 

嵌入式 STM32 SHT31温湿度传感器

3、SHT31读写数据 

SHT31指令集

了解一下如下SHT31命令集:

嵌入式 STM32 SHT31温湿度传感器

 嵌入式 STM32 SHT31温湿度传感器

读数据 

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

嵌入式 STM32 SHT31温湿度传感器

 

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

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

温湿度转换

嵌入式 STM32 SHT31温湿度传感器

4、温湿度转换应用 

sht3x初始化

嵌入式 STM32 SHT31温湿度传感器文章来源地址https://www.toymoban.com/news/detail-427920.html

读取温湿度 

/*********************************************************************************************************
* 函 数 名 : 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温湿度传感器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机项目分享 Stm32 WIFI智能家居温湿度和烟雾检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(26)
  • STM32物联网项目-SHT30温湿度采集(IIC通信)

    SHT30数字温湿度传感器 SHT3x湿度传感器系列包括低成本版本SHT30、标准版本SHT31,以及高端版本SHT35。 SHT3x湿度传感器系列结合了多种功能和各种接口(I2C、模拟电压输出),应用友好,工作电压范围宽(2.15至5.5 V),适合各类应用。 SHT3x建立在全新和优化的CMOSens® 芯片之上,

    2023年04月21日
    浏览(15)
  • STM32之模拟IIC总线控制SHT20温湿度芯片

    一、IIC总线概述 1、IIC总线介绍 I2C (Inter-Integrated Circuit)总线产生于在80年代, 由PHILIPS公司开发的 两线式串行总线 ,用于连接微控制器及其外围设备, 最初为音频和视频设备开发。I2C总线两线制包括: 串行数据 SDA (Serial Data)、 串行时钟 SCL (Serial Clock)。时钟线必须由主

    2024年02月02日
    浏览(16)
  • FPGA读取SHT31温湿度传感器

    SHT30 是瑞士盛世瑞恩生产出品的一个温湿度传感器,该SHT3X是一个系列,一共有SHT30/SHT31/SHT35这三个品类, SHT30——低成本版本,±3% RH精度;SHT31——标准版本,±2% RH精度;RH精度SHT35——高端版本,±1.5% RH; 一般生活内监测用SHT30即可。 SHT30性能参数如下: 温度检测范围:5-60℃

    2024年02月22日
    浏览(17)
  • IIC学习之SHT30温湿度传感器(基于STM32)

    附上SHT30资料和逻辑分析仪源文件,点击下载 关于IIC的介绍网上已经非常详尽,这里只说重点: 双线(SDA,SCL),半双工 采用主从结构,支持一主多从,通过地址寻址,每个I2C设备都有唯一的7位或10位地址,还有1bit选择读写(0为写,1为读) 速率较低,I2C总线支持多种通信

    2024年02月01日
    浏览(22)
  • STM32Cubemxhal库硬件IIC驱动SHT40温湿度传感器

    STM32cubemx配置硬件IIC如图所示  SHT40的驱动代码 注意:在读sht40的寄存器之后一定要加10几个ms的延时

    2024年02月12日
    浏览(12)
  • STM32(HAL库)驱动SHT30温湿度传感器通过串口进行打印

    目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置  2.1.2 RCC配置 2.2 软件IIC引脚配置 2.3 串口外设配置  2.4 项目生成  3、KEIL端程序整合 3.1 串口重映射 3.2 SHT30驱动添加 3.3 主函数代 3.4 效果展示 本文通过STM32F103C8T6单片机通过HAL库方式对SHT30传感器进行数据的读取,并

    2024年02月16日
    浏览(15)
  • ESP32-硬件IIC读取温湿度传感器SHT30

    esp32 使用硬件I2C读取温湿度传感器SHT30,例程基于 EDP-IDF-4.4.X 的I2C Simple Example 例程修改 打开 VSCODE ,通过 查看-- 命令面板(快捷键Ctrl+Shift+P),打开 ESP-IDF 的例程后,选择 i2c_simple 例程,点击 Create project using example i2c_simple,选择自己要存储的目录。【PS:工程的目录不要有中文路

    2024年02月02日
    浏览(15)
  • SHT30温湿度传感器应用笔记

            SHT30是一款温湿度传感器,使用IIC通信接口。可根据命令设置其测量频率、测量时间;测量持续时间有三种可选(见芯片手册2.2):         HIGH:12.5ms;         medium:4.5ms;         low:2.5ms;         测量频率有五种可选:0.5次/秒、1次/秒、2次/秒、4次/秒、

    2024年02月01日
    浏览(46)
  • 常用传感器-温湿度传感器SHT30

    SHT30温湿度传感器 工作电压:2.4V-5.5V 通讯协议:IIC 湿度测量范围:0-100 温度测量范围:-40°-125° VIN:电源正极 GND:电源负极 SCL:数据线 SDA:数据线 1.加载库文件:ClosedCube_SHT31D 选择库文件:ClosedCube_SHT31D 2.连接esp mini d1和温湿度传感器 VIN和GND分别取主板5V电压 SCL和SDA分别接

    2024年02月01日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包