【蓝桥杯嵌入式】SysTick滴答定时器

全部代码网盘自取

链接:https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd=3ii2 
提取码:3ii2

 滴答定时器可以用来计算时间间隔和延时,下面介绍其使用方法。

1、代码

LED间隔500ms闪烁

main.c

#include "main.h"
#include "usart.h"
#include "gpio.h"
/* USER CODE BEGIN Includes */
#include "led.h"
__IO uint32_t ledTick =0; //uwTick的类型是32位无符号整型,故ledTick也一样
uchar led_sta=0xff;/* USER CODE END Includes */
void SystemClock_Config(void);
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
LED_Disp(0x00);//LED的初始化
/* USER CODE END 2 */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  led_pro();
    /* USER CODE END WHILE */
  }
}

void led_pro(void)
{
	if(uwTick

2、说明

uwTick 的值通常会一直增加,它通常是一个由系统定时器或时钟中断更新的全局变量。这个变量的作用是提供一个递增的计数,通常以毫秒为单位,表示自系统启动以来经过的时间。以下是一些关于 uwTick 的常见特点:

  1. 递增:uwTick 通常由一个定时器中断服务例程(ISR)递增,每次定时器溢出时,uwTick 的值就会增加一个固定的量(比如1毫秒)。
  2. 全局变量:uwTick 通常被定义为全局变量,以便在程序的任何地方都可以访问到当前的时间戳。
  3. 无回绕:在32位系统中,uwTick可以持续增加直到达到最大值(通常是4,294,967,295十六进制为0xFFFFFFFF),然后才会回绕到0。这意味着它可以记录大约49.7天的时间。在实际应用中,这通常足够长,以至于在大多数应用的生命周期内不会发生回绕。
  4. 用于计时和延迟:uwTick 可以用于计算时间间隔、实现延迟和控制周期性任务的执行频率,正如你提供的代码片段中所做的那样。
  5. 系统启动时初始化:在系统启动时,uwTick 通常被初始化为0,然后随着时间的推移而增加。

因此,uwTick 的值是一直增加的,直到它达到最大值然后回绕,或者直到系统重启。这种设计使得 uwTick 成为一个非常有用的工具,用于在嵌入式系统和实时应用程序中跟踪时间和控制时间相关的功能。

你可能感兴趣的:(蓝桥杯嵌入式入门,蓝桥杯,嵌入式硬件,stm32)