【STM32】AHT20温湿度模块

ops/2025/2/8 11:48:27/

AHT20温度模块采用的是I2C硬件通信协议。本篇文章会根据时序图实现AHT20模块初始化,以及读取温湿度
AHT20温度模块对应电路图
在这里插入图片描述

得到设备地址,读地址的话设备地址为0x71,写的话为0x70
在这里插入图片描述

1.根据手册写aht20初始化代码

在这里插入图片描述

void aht20_init()
{    uint8_t readdata;uint8_t writedata[3]={0XBE,0X08,0X00};HAL_Delay(40);HAL_I2C_Master_Receive(&hi2c1,ReadAddress,&readdata,1,HAL_MAX_DELAY);if((readdata&0X08)==0X00){HAL_I2C_Master_Transmit(&hi2c1,WriteAddress,writedata,3,HAL_MAX_DELAY);}}

在这里插入图片描述

2.根据手册写读取温湿度函数

在这里插入图片描述

void aht20_read(float*tmp,float*hum)
{uint8_t data[3]={0XAC,0X33,0X00};uint8_t readdata[6];HAL_I2C_Master_Transmit(&hi2c1,WriteAddress,data,3,HAL_MAX_DELAY);HAL_Delay(75);HAL_I2C_Master_Receive(&hi2c1,ReadAddress,readdata,6,HAL_MAX_DELAY);if((readdata[0]&0X80)==0X00){uint32_t data;data=((uint32_t)readdata[3]>>4)+((uint32_t)readdata[2]<<4)+((uint32_t)readdata[1]<<12);*hum=data*100.0f/(1<<20);data=(((uint32_t)readdata[3]&0X0F)<<16)+((uint32_t)readdata[4]<<8)+(uint32_t)readdata[5];*tmp=(data*200.0f/(1<<20))-50;}}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


main.c

  OLED_Init();aht20_init();char message[50]="";float tmp=0;float hum=0;while (1){OLED_NewFrame();aht20_read(&tmp,&hum);sprintf(message,"tmp:%.2f",tmp);OLED_PrintString(10, 10, message,&font16x16, OLED_COLOR_NORMAL);sprintf(message,"hum:%.2f",hum);OLED_PrintString(10, 30, message,&font16x16, OLED_COLOR_NORMAL);OLED_ShowFrame();HAL_Delay(500);}

http://www.ppmy.cn/ops/156716.html

相关文章

WebSocket——netty实现websocket编码

一、前言&#xff1a;WebSocket 和 Netty 简介 在现代的互联网应用中&#xff0c;许多场景需要实时通信&#xff0c;比如在线聊天、实时通知、股票行情更新等。这些场景下&#xff0c;我们需要一种技术&#xff0c;让服务器能够主动向客户端推送消息。WebSocket 就是为了解决这…

支持向量机(一)

支持向量机是典型的二分类模型&#xff0c;以其模型简单、实现简单、效果卓越而著称。 一元支持向量机 我们通过一条中间线根据特征对样本实现分类&#xff0c;很明显&#xff1a;两个支持样本的差别越大&#xff0c;两个支持样本的分类效果就越好。 二元支持向量机 在实际生…

QT实现多线程的方法

目录 一、继承QThread类 1&#xff09;自定义线程类 2&#xff09;使用自定义的子线程类 3&#xff09;使用说明 二、利用QThread的消息循环 1&#xff09;自定义执行类 2&#xff09;启动子线程 3&#xff09;方法说明 三、使用线程池 四、方法比较 QT多线程编程常…

《DeepSeek R1:7b 写一个python程序调用摄像头获取视频并显示》

C:\Users\Administrator>ollama run deepseek-r1:7b hello Hello! How can I assist you today? &#x1f60a; 写一个python程序调用摄像头获取视频并显示 好&#xff0c;我需要帮用户写一个Python程序&#xff0c;它能够使用摄像头获取视频&#xff0c;并在屏幕上显示出…

CSS 伪类(Pseudo-classes)的详细介绍

CSS 伪类详解与示例 在日常的前端开发中&#xff0c;CSS 伪类可以帮助我们非常精准地选择元素或其特定状态&#xff0c;从而达到丰富页面表现的目的。本文将详细介绍以下伪类的使用&#xff1a; 表单相关伪类 :checked、:disabled、:enabled、:in-range、:invalid、:optional、…

Selenium记录RPA初阶 - 基本输入元件

防止自己遗忘&#xff0c;故作此为记录。 爬取网页基本元件并修改后爬取。 包含元件&#xff1a; elements: dict[str, str] {"username": None,"password": None,"email": None,"website": None,"date": None,"ti…

移动云电脑轻松搭建DeepSeek本地大模型

本文带您在移动AI云电脑上部署DeepSeek-R1大模型&#xff0c;构建个人知识库&#xff0c;开启本地大模型使用之旅。 目前你可以在移动AI云电脑公众版、行业型&#xff08;GPU型&#xff09;云电脑中&#xff0c;利用Ollama来本地部署Deekseek R1模型。 首先选购一台移动AI云电…

五十天精通硬件设计第四天-场效应管知识及选型

场效应管(FET,Field-Effect Transistor)是一种利用电场效应控制电流的半导体器件,广泛应用于放大、开关等电路中。以下是场效应管的基本知识及选型要点: 一、场效应管的基本知识 1. 类型: - **结型场效应管(JFET)**: - N沟道和P沟道两种类型。 - 栅极与…