当前位置: 首页 > article >正文

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)
#endif

PUTCHAR_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.kler.cn/news/365751.html

相关文章:

  • 技术成神之路:二十三种设计模式(导航页)
  • Windows 使用命令行开启热点(无线网卡连接下)
  • C#中的委托、匿名方法、Lambda、Action和Func
  • 学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库
  • ArcGIS无插件加载(无偏移)在线天地图高清影像与街道地图指南
  • Flask集成sqlalchemy (学习笔记)
  • 【Git】将本地代码提交到github仓库
  • 【Unity 安装教程】
  • Node.js 进阶:V8 垃圾回收机制全解析
  • ClickHouse与各种组件的关系
  • kotlin定时器和主线程定时器
  • Python的变量与数据类型——变量的定义
  • 今日头条躺赚流量:自动化新闻爬取和改写脚本
  • vue3 + VIte + TS 移动端 H5 项目屏幕适配,PC端响应式布局
  • 监控易监测对象及指标之:Weblogic中间件监控
  • 美的智能制造MES与WMS系统:打造高效、协同的制造与物流管理平台|203页PPT
  • 【使用Flask构建RESTful API】从零开始开发简单的Web服务!
  • OpenAI o1:AI新范式及未来的10个影响
  • 基于深度学习的虚拟化装系统设计与实现
  • 数据结构.单链表
  • 青少年编程与数学 02-002 Sql Server 数据库应用 11课题、视图的操作
  • Spire.PDF for .NET【页面设置】演示:在 C# 中应用 PDF 页面转换
  • Pytorch与深度学习 #10.PyTorch训练好的模型如何部署到Tensorflow环境中
  • AnaTraf | 全面掌握网络健康状态:全流量的分布式网络性能监测系统
  • 数字电路week3
  • 听见文本的魅力:AI 与未来的语音交互