STM32学习之SHT20温湿度传感器_sht20例程

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

SHT20采用的I2C通信,基本命令如下表:
在这里插入图片描述

其中主机通讯的时序如图
在这里插入图片描述
首先发送写地址,再发送命令,然后是读地址,随后等待测量即可,测量时间如下图,传感器内部设置的默认分辨率为相对湿度 12位和温度 14位。45发送NACK时可取消校验。
在这里插入图片描述
下面是读取数据的代码,0x40是主机地址,先发送写命令,然后写入触发测量命令,再写入读命令,准备接收数据,数据一共三字节,依次是数据高字节、低字节、校验字节。

SHT20_ADDRESS  = 0x40;

u16 SHT20\_Get\_Data(u8 Cmd)
{
	u16 data;
	u8 addr, checksum;
	u8 buf[2];
  
    addr = SHT20_ADDRESS << 1;		//IIC地址是7bit,这里需要左移1位,bit0:1-读 0-写
	
	IIC\_Start();					//起始信号
	
	IIC\_Write\_Byte(addr);			//发送设备地址(写)
	IIC\_Wait\_Ack();					//等待应答
	
	IIC\_Write\_Byte(Cmd);			//发送命令
	IIC\_Wait\_Ack();
	
	IIC\_Start();					//重启信号
	
	IIC\_Write\_Byte(addr + 1);		//发送设备地址(读)
	IIC\_Wait\_Ack();
	
	delay\_ms(70);					//等待测量
	
	buf[0] = IIC\_Read\_Byte();		//数据高位
	IIC\_Ack();						//产生ACK应答
	buf[1] = IIC\_Read\_Byte();		//数据低位
	IIC\_Ack();						//产生ACK应答 如果这里不应答 则不传送校验位
	
	checksum = IIC\_Read\_Byte();		//校验位
	IIC\_NAck();						//不应答
	
	IIC\_Stop();						//结束信号
	
	data = (buf[0] << 8) + buf[1];
	
	if(CRC\_Check(buf, 2, checksum) == 0)		//校验
	{
		if(Cmd == SHT20_Measurement_T_HM)
		{
			data = (175.72 \* data / 65536 - 46.85) \* 10;	//温度计算公式
		}
		else data = (125.0 \* data / 65536 - 6.0) \* 10;		//湿度计算公式
		
		return data;
	}
	else return 0xFFFF;										//校验不通过返回0xFFFF
}

SHT20采用的是CRC8校验、模型为X8 + X5 +X4 +1,即CRC_MODEL = 0x131。
CRC校验的代码如下

#define CRC\_MODEL 0x131

u8 CRC\_Check(u8 \*ptr, u8 len, u8 checksum)
{
    u8 i; 
    u8 crc = 0x00; 				//计算的初始crc值 
 
    while(len--)
    {
        crc ^= \*ptr++;  		//每次先与需要计算的数据异或,计算完指向下一数据 
		
        for (i = 8; i > 0; --i) //下面这段计算过程与计算一个字节crc一样 
        { 
            if (crc & 0x80)
			{
				crc = (crc << 1) ^ CRC_MODEL;
			}    
            else
                crc = (crc << 1);
        }
    }
 
    if(checksum == crc)
	{
		return 0;
	}
	else return 1;
}

源代码和中英文手册下载地址

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

讲解视频,并且后续会持续更新**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值