芯片介绍

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温湿度传感器应用笔记相关推荐

  1. CRC校验——以SHT30温湿度传感器为例(内附SHT30的驱动代码)

    文章目录 1. 基本原理 2. 计算方法 3. c语言代码实现 4. SHT30代码 4.1 drv.c 4.2 test.c 4.3 Makefile 1. 基本原理  循环冗余校验码(CRC)的基 ...

  2. 模拟IIC读取SHT30温湿度传感器数据

    文章目录 1 i2c.c 2 i2c.h 3 crc.c 4 crc.h 1 i2c.c /*** @brief SHT30温湿度传感器相关,使用模拟IIC进行数据的读取*/#include < ...

  3. STM32F103使用硬件IIC驱动SHT30温湿度传感器

    文章目录 前言 一.SHT30温湿度传感器原理图 二.代码部分 1.SHT30.c文件 2.SHT30.h文件 总结 前言 SHT30是一种常见的温湿度传感器,该传感器广泛应用于各种场景,小米的温湿度 ...

  4. sht30温湿度传感器中文手册_【STM32Cube_16】使用硬件CRC校验数据(以SHT30为例)...

    寻求更好的阅读体验,请移步Mculover666的个人博客: Mculover666的个人博客​www.mculover666.cn 本篇详细的记录了如何使用STM32CubeMX配置STM32L43 ...

  5. 传感器:SHT30温湿度传感器检测环境温湿度实验(底部附代码)

    一.导言 SHT30温湿度传感器模块是通过IIC驱动,所以大家使用该模块时,需要具备IIC的基本知识,这篇文章带领大家一起使用SHT30模块进行温湿度的测量,当然DHT10/DHT10原理都一样,好了 ...

  6. nRF52笔记(8) IIC读取sht30温湿度传感器

    1.平台的条件 1.1 软件平台:sdk14.2 1.2 硬件平台: nrf52832 2 说明: 只是介绍代码怎么使用,直接点 QQ: 1297311998 ,如果有什么问题,请高手不吝赐教 2.n ...

  7. 【STM32】【STM32CubeMX】STM32CubeMX的使用之四:IIC总线协议驱动SHT30温湿度传感器

    文章目录 0.前言 1.传感器介绍 1.1.传感器简介 1.2.传感器板原理图 1.3.传感器引脚定义 1.4.数据采集工作流程 1.4.1.单次数据采集模式 1.4.2.周期型数据采集模式 1.5. ...

  8. STM32模拟IIC驱动sht30温湿度传感器

    最近有在使用sht30这个传感器,相比于新手常用的dht11传感器,sht30更精确,自己花了半小时调好了 所以拿出来分享给大家. sht30外观 驱动不是自己写的, 是采用CSDN上的一位朋友的 , ...

  9. 学习记录 | SHT30温湿度传感器显示异常

    使用的单片机是STC12C5A60S2,SHT30驱动程序直接照搬的这位博主SHT3X 温湿度模块 C51驱动 --简单调用获取温湿度信息_往漓的博客-CSDN博客SHT3X 温湿度模块 C51驱动S ...

最新文章

  1. usb调试模式已打开,adb devices显示List of devices attached 解决办法!纽维K333一键ROOT,获取ROOT权限!...
  2. 基于busybox的Linux小系统制作 (initrd)
  3. percona-toolkit 之 【pt-slave-delay】说明
  4. 【转】Oracle执行计划解释
  5. linux内核简介和进程管理
  6. mysql查询交叉连接_MySQL表连接(内连接、交叉连接、外连接、联合查询)-阿里云开发者社区...
  7. Freeswitch在内网,由服务器防火墙映射出来,IMSDROID作为被叫的问题
  8. mysqldump gzip压缩 备份及还原
  9. Maple学习笔记——基础
  10. 六年级计算机教学进度计划,六年级下册信息技术教学计划及进度计划
  11. 小米格式化fastboot_小米fastboot刷机教程
  12. vue3 使用sass/scss
  13. 码科同城小程序源码(含后端php源码)
  14. Sara 老友记 第一季第六集 Joey天天演烂片
  15. ecshop后台出现Strict Standards: Only variables should be passed by refin /var/www·····
  16. 已知a和b的最大公因数和最小公倍数求这两个数字
  17. 7-42 打印倒直角三角形图案 (15 分)
  18. 《UnityAPI.Application应用程序》(Unity+SteamVR+云技术+5G+AI+VR云游戏+API+dataPath+OpenURL+LoadLevel+立钻哥哥++OK++)
  19. 计算机考试带过,软件考试可以带计算机吗?
  20. 多线程下载管理器:Neat Download Manager Mac

热门文章

  1. 【智慧交通项目实战】 《 OCR车牌检测与识别》(二):基于YOLO的车牌检测
  2. 怎么简单快速将CAD图纸转换成黑白的WMF格式?
  3. 自学测试半年,终于收到了腾讯的offer,那一刻我哭出了声...
  4. python编写交互界面设计_Python 如何编写交互界面?
  5. 小满nestjs(第十九章 nestjs 管道验证DTO)
  6. 黑莓手机BlackBerry Java应用性能优化,tips
  7. 【洛谷P3376】网络最大流【网络流】
  8. 八皇后问题php,C++_C++实现八皇后问题的方法,本文实例展示了C++实现八皇后 - phpStudy...
  9. Elmo canopen 之 控制字 0x6040
  10. java-多态课堂练习