SHT30温湿度传感器应用笔记
芯片介绍
SHT30是一款温湿度传感器,使用IIC通信接口。可根据命令设置其测量频率、测量时间;测量持续时间有三种可选(见芯片手册2.2):
HIGH:12.5ms;
medium:4.5ms;
low:2.5ms;
测量频率有五种可选:0.5次/秒、1次/秒、2次/秒、4次/秒、10次/秒。
如采样时间12.5ms,10次/秒的指令为:0x2737.例程如下:
static void start_measure(void)
{const uint8_t iic_addr = 0x44 << 1;const uint16_t cmd_meas_freq = 0x2737;uint8_t cmd[2];cmd[0] = cmd_meas_freq >> 8;cmd[1] = cmd_meas_freq;HAL_I2C_Master_Transmit(&hi2c1, iic_addr, cmd, 2, 100);
}
温湿度读取
在芯片手册4.6节有讲解如何读取芯片测量数据:
在芯片手册4.11节有讲解读出数据CRC校验方法:
例程如下:
uint8_t CRC8(uint8_t * p_buf, UINT16 num)
{uint8_t result = 0xff;uint8_t const ploynomial = 0x31;for(uint8_t i = 0; i < num; i++){result ^= p_buf[i];for(uint8_t j = 0; j < 8; j++){if(result&0x80){result <<= 1;result ^= ploynomial;}else{result <<= 1;}}}return result;
}
在芯片手册4.12节有讲解如何将芯片测量数据转换成我们想要的温湿度数据:
例程如下:
typedef struct
{float temperature;float humidity;
}Param;uint8_t read_param(Param *param)
{uint8_t data[6];const uint8_t iic_addr = 0x44 << 1;const uint16_t cmd_fetch_data = 0xE000;uint8_t cmd[2];cmd[0] = cmd_fetch_data >> 8;cmd[1] = (uint8_t)cmd_fetch_data;HAL_I2C_Master_Transmit(&hi2c1, iic_addr, cmd, 2, 100);HAL_I2C_Master_Receive(&hi2c1, iic_addr, data, sizeof(data), 100);if((CRC8(&data[0], 2) != data[2]) || (CRC8(&data[3], 2) != data[5])){return FALSE;}uint8_t tmp = (data[0] << 8) + data[1];param->temperature = ((float)(175*tmp)/65535) - 45;tmp = (data[3] << 8) + data[4];param->humidity = (float)(100*tmp)/65535;return TRUE;
}
SHT30温湿度传感器应用笔记相关推荐
- CRC校验——以SHT30温湿度传感器为例(内附SHT30的驱动代码)
文章目录 1. 基本原理 2. 计算方法 3. c语言代码实现 4. SHT30代码 4.1 drv.c 4.2 test.c 4.3 Makefile 1. 基本原理 循环冗余校验码(CRC)的基 ...
- 模拟IIC读取SHT30温湿度传感器数据
文章目录 1 i2c.c 2 i2c.h 3 crc.c 4 crc.h 1 i2c.c /*** @brief SHT30温湿度传感器相关,使用模拟IIC进行数据的读取*/#include < ...
- STM32F103使用硬件IIC驱动SHT30温湿度传感器
文章目录 前言 一.SHT30温湿度传感器原理图 二.代码部分 1.SHT30.c文件 2.SHT30.h文件 总结 前言 SHT30是一种常见的温湿度传感器,该传感器广泛应用于各种场景,小米的温湿度 ...
- sht30温湿度传感器中文手册_【STM32Cube_16】使用硬件CRC校验数据(以SHT30为例)...
寻求更好的阅读体验,请移步Mculover666的个人博客: Mculover666的个人博客www.mculover666.cn 本篇详细的记录了如何使用STM32CubeMX配置STM32L43 ...
- 传感器:SHT30温湿度传感器检测环境温湿度实验(底部附代码)
一.导言 SHT30温湿度传感器模块是通过IIC驱动,所以大家使用该模块时,需要具备IIC的基本知识,这篇文章带领大家一起使用SHT30模块进行温湿度的测量,当然DHT10/DHT10原理都一样,好了 ...
- nRF52笔记(8) IIC读取sht30温湿度传感器
1.平台的条件 1.1 软件平台:sdk14.2 1.2 硬件平台: nrf52832 2 说明: 只是介绍代码怎么使用,直接点 QQ: 1297311998 ,如果有什么问题,请高手不吝赐教 2.n ...
- 【STM32】【STM32CubeMX】STM32CubeMX的使用之四:IIC总线协议驱动SHT30温湿度传感器
文章目录 0.前言 1.传感器介绍 1.1.传感器简介 1.2.传感器板原理图 1.3.传感器引脚定义 1.4.数据采集工作流程 1.4.1.单次数据采集模式 1.4.2.周期型数据采集模式 1.5. ...
- STM32模拟IIC驱动sht30温湿度传感器
最近有在使用sht30这个传感器,相比于新手常用的dht11传感器,sht30更精确,自己花了半小时调好了 所以拿出来分享给大家. sht30外观 驱动不是自己写的, 是采用CSDN上的一位朋友的 , ...
- 学习记录 | SHT30温湿度传感器显示异常
使用的单片机是STC12C5A60S2,SHT30驱动程序直接照搬的这位博主SHT3X 温湿度模块 C51驱动 --简单调用获取温湿度信息_往漓的博客-CSDN博客SHT3X 温湿度模块 C51驱动S ...
最新文章
- usb调试模式已打开,adb devices显示List of devices attached 解决办法!纽维K333一键ROOT,获取ROOT权限!...
- 基于busybox的Linux小系统制作 (initrd)
- percona-toolkit 之 【pt-slave-delay】说明
- 【转】Oracle执行计划解释
- linux内核简介和进程管理
- mysql查询交叉连接_MySQL表连接(内连接、交叉连接、外连接、联合查询)-阿里云开发者社区...
- Freeswitch在内网,由服务器防火墙映射出来,IMSDROID作为被叫的问题
- mysqldump gzip压缩 备份及还原
- Maple学习笔记——基础
- 六年级计算机教学进度计划,六年级下册信息技术教学计划及进度计划
- 小米格式化fastboot_小米fastboot刷机教程
- vue3 使用sass/scss
- 码科同城小程序源码(含后端php源码)
- Sara 老友记 第一季第六集 Joey天天演烂片
- ecshop后台出现Strict Standards: Only variables should be passed by refin /var/www·····
- 已知a和b的最大公因数和最小公倍数求这两个数字
- 7-42 打印倒直角三角形图案 (15 分)
- 《UnityAPI.Application应用程序》(Unity+SteamVR+云技术+5G+AI+VR云游戏+API+dataPath+OpenURL+LoadLevel+立钻哥哥++OK++)
- 计算机考试带过,软件考试可以带计算机吗?
- 多线程下载管理器:Neat Download Manager Mac
热门文章
- 【智慧交通项目实战】 《 OCR车牌检测与识别》(二):基于YOLO的车牌检测
- 怎么简单快速将CAD图纸转换成黑白的WMF格式?
- 自学测试半年,终于收到了腾讯的offer,那一刻我哭出了声...
- python编写交互界面设计_Python 如何编写交互界面?
- 小满nestjs(第十九章 nestjs 管道验证DTO)
- 黑莓手机BlackBerry Java应用性能优化,tips
- 【洛谷P3376】网络最大流【网络流】
- 八皇后问题php,C++_C++实现八皇后问题的方法,本文实例展示了C++实现八皇后 - phpStudy...
- Elmo canopen 之 控制字 0x6040
- java-多态课堂练习