芯片介绍

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. 字符串补充知识及列表类型
  2. 黑马程序员--线程【下】
  3. 用最快速度,打造「最强 Webpack 前端工具链」,强势运行
  4. HDU - 5242 Game(树形dp+树链剖分/树上贪心+思维)
  5. 机器学习之 weka学习(五)示例用法
  6. HTML4和HTML5的区别[转]
  7. postgresql的别名要用双引号才可以
  8. CPR认证-建材CE认证-305/2011/EU
  9. Vscode使用npm安装babel
  10. 2017.3.9 Harry and Christmas tree 失败总结
  11. doc 命令查看帮助
  12. [转载] 用python 获取当前时间(年-月-日 时:分:秒),并且返回当前时间的下一秒
  13. 2021届成都高考一诊成绩查询,2021届成都一诊来了!你想知道的,都在这儿!(附2020年985/211高校在川调档线及位次)...
  14. word ctrl v 不能用
  15. matlab仿真放入直流电源,用Matlab/Simulink软件包建模电容滤波直流电源
  16. SAXParseException 前言中不允许有内容
  17. 计算机网络中的NET与应用中的.NET
  18. VSCODE 配置cl.exe编译器
  19. 机器人开发常见第三方库、软件安装和使用
  20. [ctf.show.reverse] BJDCTF2020 encode

热门文章

  1. Android:写了这么多代码,你真的理解泛型吗?
  2. 512GB 的 iPhone 13 不够用?
  3. note_44:事件分发
  4. 外虚内实是什么意思_农村俗语“宅有五实五虚,五虚令人贫;五实人富贵”是什么意思?...
  5. 国内某Python大神自创完整版,系统性学习Python
  6. SpringBoot中使用themeleaf
  7. ubuntu20.04中安装ROS系统,详细介绍各种错误解决方法,直达小海龟
  8. 智慧农业,拖拉机自动驾驶发展迅速,使用中出现的问题不容忽视
  9. Iphone 通过USB共享网络给Linux, IOS14+不能使用的解决方法
  10. 电脑中了勒索病毒怎么解决,Windows系统被faust勒索病毒攻击了怎么办?