STM32 | 方式1:手机发送指令,开发板向手机发送温湿度;方式2:手机发送指令,开发板定时向手机发送温湿度。

2024-06-02 03:52

本文主要是介绍STM32 | 方式1:手机发送指令,开发板向手机发送温湿度;方式2:手机发送指令,开发板定时向手机发送温湿度。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​01、知识回顾

STM32 | HC-SR04 超声波测距模块 | DHT11数字温湿度传感器(第七天)
STM32 | 数字温湿度传感器DHT11
STM32 | HC-SR04 超声波测距模块
STM32 | DHT11数字温湿度传感器实战
STM32 | 超声波实战

02、作业1

1、通过手机的两方式获取温湿度.

方式1:手机发达指令,开发板向手机发送温湿度;

方式2:手机发达指令,开发板定时向手机发送温湿度。

03、延时外设SysTick

SysTick是指ARM Cortex-M微控制器中的一个系统定时器。它是一个内置的系统定时器,通常用于实现微秒级的延时、定时器中断和系统节拍等功能。SysTick定时器具有以下特点:

1. **精确性**:SysTick定时器是硬件级别的定时器,具有非常高的精度和稳定性,适用于精确的定时和延时操作。

2. **灵活性**:SysTick定时器可以通过软件进行配置和控制,包括预分频、周期设置等,具有一定的灵活性,可以适应不同的应用场景。

3. **低功耗**:SysTick定时器通常使用CPU的时钟作为时钟源,因此在低功耗应用中可以有效地利用系统资源。

4. **易用性**:SysTick定时器的配置和使用相对简单,通常只需配置预分频和周期即可实现所需的定时功能,适用于嵌入式系统和实时操作系统。

//头文件#ifndef __DELAY_H#define __DELAY_H#include "stm32f4xx.h"void Delay_Init(void);void delay_us(u32 nus);void delay_ms(u32 nms);void delay_s(u32 ns);#endif//源文件#include "delay.h"//u32 == unsigned intu32 my_us = 21;        //计21个数用1usu32 my_ms = 21000;      //计21000个数用1msvoid Delay_Init(void){  //SysTick时钟配置 168MHZ/8 = 21MHZ  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);}//nus取值范围:1~798 915void delay_us(u32 nus){  u32 temp = 0;  //设置重装值寄存器  SysTick->LOAD = my_us*nus - 1;  //设置计数器的值为0  SysTick->VAL = 0x00;  //开启定时器  SysTick->CTRL |= (0x01<<0);    do  {    temp = SysTick->CTRL;      //判断定时是否关闭  //判断SysTick->CTRL第16位是否为1  }while((temp&(0x01<<0)) && (!(temp & (0x01<<16))));      //关闭定时器  SysTick->CTRL &= ~(0x01<<0);}//nms取值范围:1~798void delay_ms(u32 nms){  u32 temp = 0;  //设置重装值寄存器  Sy

这篇关于STM32 | 方式1:手机发送指令,开发板向手机发送温湿度;方式2:手机发送指令,开发板定时向手机发送温湿度。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022964

相关文章

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删