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 = 21MHZSysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);}//nus取值范围:1~798 915void delay_us(u32 nus){u32 temp = 0;//设置重装值寄存器SysTick->LOAD = my_us*nus - 1;//设置计数器的值为0SysTick->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