STM32Lx GXHT3x SHT3x iic 驱动开发应用详解

简介

项目开发过程中,采用STM32L151 为主控芯片进行设计,并外接GXHT3x进行温湿度数据采集。这里MCU采用片上IIC与GXHT3x进行数据交互,本文详细记录了开发过程,为今后的项目提供参考,加速项目开发进度。

硬件设计

相关原理图

主要相关原理图,这里的关键是MCU片上IIC管脚PB6/PB7最好设计上拉,另外GXTH30的ADDR管脚标志了该器件的地址,这点可以从手册中看到。

时钟 

 时钟方面,使能外部8Mhz时钟,时钟配置图如下图所示,从图中可以看出ADC的时钟是由内部高速时钟提供的。

IIC配置

 串口配置 

软件设计

主函数设计

int main(void)
{/* USER CODE BEGIN 1 */float temp, hum;char buffer[50];int buffer_len;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_GPIO_TogglePin(GPIOB, MCU_SYS_LED_PB9_Pin);HAL_Delay(1000);SHT30_Read(&temp, &hum); //buffer_len = sprintf(buffer, "Temperature: %.1f C, Humidity: %.1f%% RH\r\n", temp, hum);HAL_UART_Transmit(&huart1, (uint8_t*)buffer, buffer_len, HAL_MAX_DELAY); //}/* USER CODE END 3 */
}

 串口打印设置

添加串口打印宏定义如下:

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endifPUTCHAR_PROTOTYPE
{while((USART1->SR&0x40)==0){};USART1->DR = ch;return ch;
}

 调试记录

STM32CubeIDE 1.8.0工程测试记录:可以看出温度是正确的,同时用手按住该器件,温度和湿度有明显的数据变化。

本文使用资源工程下载地址如下:

STM32LxGXHT3xSHT3xiic驱动开发应用详解(含STM32CubeIDE工程,含详细说明,SHT3x手册资源-CSDN文库

 附件:关于GXHT3x手册中的关键信息如下

地址确定管脚

通过 ADDR 引脚的相应接线,I2C地址。请注意,I2C地址通过 I2C 的 7 个 MSB 表示read 或 write 标头。LSB 在读取或write 标头。显示默认地址的连线在表 7 和图 7 中。不得留下 ADDR 引脚浮动。请注意,只有 I2C 的 7 个 MSB读/写标头构成 I2C 地址,如下图所示 

 典型接线

管脚定义

ALERT Pin

警报引脚可用于连接到中断引脚的微控制器。pin 的输出取决于RH/T 读数相对于可编程的值限制。它的功能在单独的应用程序中进行了解释注意。如果未使用,则此 pin 必须保持悬空。

该管脚配合MCU中断,可以保持MCU的低功耗运行,减少对MCU对该器件的访问频度。

nRESET Pin

nReset 引脚可用于生成传感器。要求最小脉冲持续时间为 350 ns可靠地触发传感器的复位。它的功能是在第 4 节中有更详细的解释。如果不使用,则为建议连接到 VDD

本文使用资源工程下载地址如下:

STM32LxGXHT3xSHT3xiic驱动开发应用详解(含STM32CubeIDE工程,含详细说明,SHT3x手册资源-CSDN文库

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/456993.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层顺序调整功能

目录 引言一、为什么要开发图层顺序调整功能二、开发思路整理1. 拖拽库方案选择2. cesium图层api查询 三、代码编写1. 编写拖拽组件代码2. 修改原有图层管理代码2.1 图层加载移除的调整2.2 图层顺序与拖拽列表的矛盾 3. 编写图层移动代码 四、总结 引言 本教程主要是围绕Cesium…

Linux-Centos操作系统备份及还原(整机镜像制作与还原)--再生龙

适用场景 Linux系统设备需要备份整机数据,或者需要还原到多台设备上。适用再生龙工具进行整机备用和还原。 镜像制作 下载再生龙镜像:clonezilla-live-2.6.4-10-amd64.iso,制作启动盘-设置U盘启动 启动后界面如下选择第四项other modes of…

使用Python来下一场深夜雪

效果图:(真实情况是动态的) 完整代码: import turtle import random# 初始化画布 turtle.bgcolor("#001f3f") # 偏深蓝色的背景 turtle.title("下雪的画面") turtle.speed(0) turtle.hideturtle() turtle.t…

steam新品节!GameViewr远程随时随地手机平板玩主机游戏教程

Steam平台在10月14日迎来了新品节,你可以尝试即将推出的游戏的免费试用版,将他们加入愿望单,像是《迷失之径》《贪婪大地》《疯狂手机大亨》等等。不知道大家是否已经选择好自己心怡的游戏呢?要是你想随时随地体验steam新品节的游…

WebStorm EsLint报红色波浪线

如图左侧。 这个错误是由于 ESLint 和 Prettier 的配置不一致导致的。它建议你移除多余的空格。以下是一些解决方法: 安装 Prettier 插件: 确保你在 WebStorm 中安装了 Prettier 插件,并确保它配置正确。 调整 ESLint 配置: 检查…

10340 文本编辑器(vim)

经验值:1600 时间限制:1000毫秒 内存限制:512MB 经开区2023年信息学竞赛试题 不许抄袭,一旦发现,直接清空经验! 题目描述 Description 李明正在学习使用文本编辑器软件 Vim。与 Word、VSCode 等常用的…

qt QNetworkProxy详解

一、概述 QNetworkProxy通过设置代理类型、主机、端口和认证信息,可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类(如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等)配置网络层代理支持…

arthas使用 笔记

下载启动 curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jar基本命令使用 JVM相关命令 Dashboard - 仪表盘 用途:查看当前Java应用的实时性能面板,包括CPU、线程、内存使用情况等。场景:快速概览系统整体健康…

【JAVA】第三张_Eclipse下载、安装、汉化

简介 Eclipse是一种流行的集成开发环境(IDE),可用于开发各种编程语言,包括Java、C、Python等。它最初由IBM公司开发,后来被Eclipse Foundation接手并成为一个开源项目。 Eclipse提供了一个功能强大的开发平台&#x…

JavaWeb——Maven(5/8):依赖管理-依赖配置(Maven 项目中的依赖配置、访问仓库网站、配置依赖的注意事项)

目录 依赖配置 Maven 项目中的依赖配置 访问仓库网站 配置依赖的注意事项 接下来,我们了解 Maven 当中的第三方依赖管理。 Maven 第三方依赖管理的重要性 依赖管理是 Maven 这款工具最核心的功能。在依赖管理这部分,我们主要讲解四个方面&#xff…

uniapp一键打包

1.先安装python环境, 2.复制这几个文件到uniapp项目里面 3.修改自己证书路径,配置文件路径什么的 4.在文件夹页面双击buildController.py或者cmd直接输入buildController.py 5.python报错,哪个依赖缺少安装哪个依赖 6.执行不动的话&…

语音提示器-WT3000A离在线TTS方案-打破语种限制/AI对话多功能支持

前言: TTS(Text To Speech )技术作为智能语音领域的重要组成部分,能够将文本信息转化为逼真的语音输出,为各类硬件设备提供便捷的语音提示服务。本方案正是基于唯创知音的离在线TTS(离线本地音乐播放与在线…

STM32--基于STM32F103C8T6的OV7670摄像头显示

本文介绍基于STM32F103C8T6实现的OV7670摄像头显示设计(完整资源及代码见文末链接) 一、简介 本文实现的功能:基于STM32F103C8T6实现的OV7670摄像头模组实时在2.2寸TFT彩屏上显示出来 所需硬件: STM32F103C8T6最小系统板、OV76…

HivisionIDPhoto Docker部署以及Springboot接口对接(AI证件照制作)

项目简介 项目以及官方文档地址 HivisionIDPhoto 旨在开发一种实用、系统性的证件照智能制作算法。 它利用一套完善的AI模型工作流程,实现对多种用户拍照场景的识别、抠图与证件照生成。 HivisionIDPhoto 可以做到: 轻量级抠图(纯离线&a…

Mysql主主互备配置

在现有运行的mysql环境下,修改相关配置项,完成主主互备模式的部署。 下面的配置说明中设置的mysql互备对应服务器IP为: 192.168.1.6 192.168.1.7 先检查UUID 在mysql的数据目录下,检查主备mysql的uuid(如下的server-…

Unity实现DBSCAN

参考连接 直接上代码&#xff0c;把脚本挂载到场景中的物体上&#xff0c;运行应该就就能看到效果。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TestDBSCAN : MonoBehaviour {private List<GameObject> goList new…

【ARM】ARM架构参考手册_Part B 内存和系统架构(5)

目录 5.1关于缓存和写缓冲区 5.2 Cache 组织 5.2.1 集联性&#xff08;Set-associativity&#xff09; 5.2.2 缓存大小 5.3 缓存类型 5.3.1 统一缓存或分离缓存 5.3.2 写通过&#xff08;Write-through&#xff09;或写回&#xff08;Write-back&#xff09;缓存 5.3.3…

BFS解决FloodFill算法(4)_被围绕的区域

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 BFS解决FloodFill算法(4)_被围绕的区域 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c…

【R + Python】iNaturalist 网站图片下载 inat api

文章目录 一、iNaturalist 简介二、R语言API&#xff1a;rinat三、示例3.1 获取观测数据3.2 绘制可视化图像函数用法 3.4 在区域网格中搜索3.5 下载图片3.51 提取图片 url3.52 下载图片: R语言3.53 下载图片: python 四、获取详细rinat包的文档 一、iNaturalist 简介 &#x1…

8.three.js相机详解

8.three.js相机详解 1、 认识相机 在Threejs中相机的表示是THREE.Camera&#xff0c;它是相机的抽象基类&#xff0c;其子类有两种相机&#xff0c;分别是正投影相机THREE.OrthographicCamera和透视投影相机THREE.PerspectiveCamera&#xff1a; 正投影和透视投影的区别是&am…