stm32hal库应用笔记之硬件IIC读写SHTC31000温湿度传感器

2023-05-16

话不多说上图:
完成的数据手册百度吧 嘻嘻
这是SHTC31000芯片的时序图:
在这里插入图片描述
这个怎么看我就不多解释了哈

SHTC3.h

#ifndef SHTC3_SHTC3_H_
#define SHTC3_SHTC3_H_

#include "main.h"

typedef struct
{
	uint8_t HumidityMSB;
	uint8_t HumidityLSB;
	uint8_t HumidityCRC;

	uint8_t temperatureMSB;
	uint8_t temperatureLSB;
	uint8_t temperatureCRC;

}SHTC3_MeasureData;


typedef struct
{
	uint8_t temp;
	uint8_t hum;
}SHTC31000;


extern SHTC31000 SHTC3_Data;

void SHTC3_init();
//void SHTC3_GoSleep();//休眠
void SHTC3_Read();
void SHTC3_Refresh();//实时刷新当前温度湿度

#endif /* SHTC3_SHTC3_H_ */

上代码:SHTC3.c

#include "SHTC3.h"
#include "i2c.h"
#include "retarget.h"
#include "systemTimer.h"

#define SHTC3_Address 0x07
#define SHTC3_Aaddress_W 0xE0
#define SHTC3_Aaddress_R 0xE1
#define SHTC3_WakeUp  0X3517
#define SHTC3_Sleep 0xB098
#define SHTC3_MeasuringCmd 0x5C24

SHTC3_MeasureData  shtc3Read;

SHTC31000 SHTC3_Data;

void SHTC3_init()
{
	uint8_t cmdTemp[2];

	cmdTemp[0] = (uint8_t)(SHTC3_WakeUp>>8);
	cmdTemp[1] = (uint8_t)(SHTC3_WakeUp);
	HAL_I2C_Master_Transmit(&hi2c1, SHTC3_Aaddress_W, (uint8_t *)&cmdTemp, sizeof(cmdTemp), 1000);
	HAL_Delay(10);
	cmdTemp[0] = (uint8_t)(SHTC3_MeasuringCmd>>8);
	cmdTemp[1] = (uint8_t)(SHTC3_MeasuringCmd);
	HAL_I2C_Master_Transmit(&hi2c1, SHTC3_Aaddress_W, (uint8_t *)&cmdTemp, sizeof(cmdTemp), 1000);
	HAL_Delay(10);

}


//void SHTC3_GoSleep()
//{
//	uint8_t cmdTemp[2];
//
//	cmdTemp[0] = (uint8_t)(SHTC3_Sleep>>8);
//	cmdTemp[1] = (uint8_t)(SHTC3_Sleep);
//	HAL_I2C_Master_Transmit(&hi2c1, SHTC3_Aaddress_W, (uint8_t *)&cmdTemp, sizeof(cmdTemp), 1000);
//}

void SHTC3_Read()
{
	float hum,temp;

	HAL_I2C_Master_Receive(&hi2c1, SHTC3_Aaddress_R, (uint8_t *)&shtc3Read, sizeof(shtc3Read), 1000);

	hum = (shtc3Read.HumidityMSB << 8)|(shtc3Read.HumidityLSB);
	temp = (shtc3Read.temperatureMSB << 8 )|shtc3Read.temperatureLSB;
	SHTC3_Data.hum = (uint8_t)(100*((float)hum/65535));//湿度
	SHTC3_Data.temp = (uint8_t)((175*((float)temp/65535)) - 45);//温度
//
//	printf(" SHTC3_Data.hum is %d",SHTC3_Data.hum);
//	printf(" SHTC3_Data.temp is %d",SHTC3_Data.temp);

}


void SHTC3_Refresh()//实时刷新当前温度湿度
{
	  SHTC3_init();
	  SHTC3_Read();
}

主函数中调用void SHTC3_Refresh()//实时刷新当前温度湿度
SHTC3_Data.hum 湿度
SHTC3_Data.temp 温度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stm32hal库应用笔记之硬件IIC读写SHTC31000温湿度传感器 的相关文章

  • Linux ls 命令提示 Input/output error

    个人博客 xff1a https 5mr xyz 一 问题描述 某一台跑批服务器硬盘无法正常读写 xff0c 提示input output error xff0c 服务器每天均需使用 xff0c 询问情况后发现服务器首先为硬盘故障 xff0
  • storcli工具的使用方法

    个人博客 xff1a https 5mr xyz 常用命令 xff1a xff08 c代表Controller xff0c e代表Enclosure xff0c s代表Slot或PD xff0c v代表ld xff09 opt MegaRA
  • xshell 连接报错 Disconnected from remote host

    个人博客 xff1a https 5mr xyz xshell连接报错 解决方法 1 登陆带外管理口远程控制台 2 查看 Var empty的属主属组和权限 xff0c empty权限需为755 3 Chmod 777 R var后导致ss
  • IPMI管理工具使用方法

    个人博客 xff1a https 5mr xyz 前言 最近需要对多台服务进行控制 xff0c 通过服务器的 BMC 控制台去控制太麻烦 xff0c 服务器刚好支持 IPMI 协议 xff0c 这里记录下常用的几条命令备忘 什么是 IPMI
  • k8s-cka考试题库

    个人博客 xff1a https 5mr xyz 本次测试的所有问题都必须在指定的cluster配置环境中完成 为尽量减少切换 xff0c 系统已对问题进行分组 xff0c 同一cluster内的所有问题将连续显示 开启TAB补全 做题前先
  • Segment Routing—BGP-LS

    BGP LS概况 BGP LS是学习多个IGP区域和区域拓扑的首选机制 BGP LS使用BGP xff0c 以可扩展的方式分发网络信息 重要的是 xff0c BGP LS还承载了IGP没有分发的信息 xff08 例如BGP对等体互联链路 x
  • OVN实验----L3互通

    概述 在L2互通基础上 xff0c 完成跨网段互访 物理拓扑 如上一个实验OVN实验 L2互通 逻辑拓扑 按照上个实验OVN实验 L2互通 的操作方式 xff0c 再配置一组容器blue xff0c 网段192 168 2 0 24 配置完
  • OVN实验----NAT

    概述 在L2互通 L3互通实验基础上通过NAT实现访问公网 架构图如下 xff0c 这里两台逻辑路由器LR1和GLR是通过一台逻辑交换机LSjoin互连的 xff0c GLR和物理网络设备通过LSlocal相连 物理拓扑 如上一个实验OVN
  • java环境变量配置好之后,cmd命令行javac为什么还是无效

    把cmd命令行关闭重启一下就好了 备注 xff1a jdk5 0之后 xff0c classpath不需要配置
  • Linux编程中的文件锁之flock

    1 场景概述 在多线程开发中 xff0c 互斥锁可以用于对临界资源的保护 xff0c 防止数据的不一致 xff0c 这是最为普遍的使用方法 那在多进程中如何处理文件之间的同步呢 xff1f 我们看看下面的图 xff1a 图中所示的是两个进程
  • 《现代医学成像科学丛书——CT原理与技术》——X射线管的基本作用

    Imaging System 医学影像 64 EnzoReventon 现代医学成像科学丛书 CT原理与技术 X射线管 xff08 球管 xff09 是CT中的重要部件 xff0c 它是设备的信号源 一 球管的基本作用 球管产生X射线的基本
  • curl -sSL https://get.rvm.io | bash -s stable curl: (7) Failed connect to api.github.com:443; 拒绝连接

    curl L get rvm io bash s stable curl sSL https get rvm io bash s stable curl 7 Failed connect to api github com 443 拒绝连接
  • Linux学习十一

    Linux学习十一 iptables服务把用于处理或过滤流量的策略条目称之为规则 xff0c 多条规则可以组成一个规则链 xff0c 而规则链则依据数据包处理位置的不同进行分类 xff0c 具体如下 xff1a 在进行路由选择前处理数据包
  • Docker - 解决容器内获取的时间和主机的时间不一样的问题

    问题背景 分别在容器和主机下执行 date 命令 可以看到 xff0c 时间是完全不一样的 解决方案 在运行容器时 xff0c 挂载 etc localtime 目录 docker run d v etc localtime etc loc
  • vscode中使用pip安装依赖包

    在vscode顶部菜单栏点击 终端 xff0c 软件下方出现终端输入框 第二步 xff1a 点击页面左下角查看python解释器路径 xff1a 在终端中进入到python解释器所在的路径 xff0c 例如输入 cd 39 C Users
  • ROS的2D仿真stdr安装

    ROS中仿真是很重要的一环 xff0c 一般3D仿真使用gazebo居多 xff0c 也可以使用Webots xff0c V rep xff0c stage 2D仿真有stdr xff0c turtlesim 图形显示可以用RVIZ std
  • 华为机试6 公因数集合

    题目描述 功能 输入一个正整数 xff0c 按照从小到大的顺序输出它的所有质因子 xff08 重复的也要列举 xff09 xff08 如180的质因子为2 2 3 3 5 xff09 最后一个数后面也要有空格 输入描述 输入一个long型整
  • Can't find file /root/.vnc/6be8fb894e4a:1.pid You'll have to kill the Xvnc4 process manually

    解决方法 xff1a 分别运行一下代码 xff1a rm tmp X rm tmp X11 unix X1 重新开启VNC服务 xff1a vncserver 1 geometry 1920x1080 depth 24
  • SONiC系统架构

    SONiC系统由两部分组成 xff1a 1 彼此交互的模块 2 用于交互的基础设施 xff08 集中式 xff0c 可扩展 xff09 其中用于交互的基础设施主要是一个非关系型数据库Redis引擎 xff1a 1 提供了一个无视语言的接口
  • 安卓studio jni调用第三方静态库CMakeLists配置

    通过CMakeLists调用第三方静态库需要加入以下CMake配置 xff1a add library mytaglib 这是我即将调用第三方静态库 xff0c 不需要写完整的静态库名 STATIC IMPORTED set target

随机推荐