STM32之HAL开发——系统定时器(SysTick)

系统定时器(SysTick)介绍

     SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。

    因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。
 

寄存器介绍

    SysTick—系统定时器有 4 个寄存器,简要介绍如下。在使用 SysTick 产生定时的时候,只需要配置前三个寄存器,最后一个校准寄存器不需要使用。
CTRL控制以及状态寄存器使用方法
LOAD重装载数值寄存器
VAL当前数值寄存器

系统定时器(SysTick)使用

CubeMX配置流程

1.配置好RCC时钟
2.配置好时钟来源,时钟频率
3.SYS配置  
4.配置SYS时钟频率

工程代码介绍

使用系统定时器实现,Delay的功能
//时钟初始化配置
void SysTick_Init(void)
{
    /* SystemFrequency / 1000    1ms中断一次
     * SystemFrequency / 100000     10us中断一次
     * SystemFrequency / 1000000 1us中断一次
     */
    if (HAL_SYSTICK_Config(SystemCoreClock / 1000))
    { 
        /* Capture error */ 
        while (1);
    }
}
//延时函数
void Delay_us(__IO u32 nTime)
{ 
    TimingDelay = nTime;    

    while(TimingDelay != 0);
}
//中断调用函数
void TimingDelay_Decrement(void)
{
    if (TimingDelay != 0x00)
    { 
        TimingDelay--;
    }
}
//中断函数
void SysTick_Handler(void)
{
  HAL_IncTick();
    TimingDelay_Decrement();
}

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 11:18:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 11:18:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 11:18:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 11:18:05       20 阅读

热门阅读

  1. 函数封装冒泡排序

    2024-03-25 11:18:05       15 阅读
  2. sql中如何添加数据

    2024-03-25 11:18:05       17 阅读
  3. FPGA时钟资源详解——时钟Buffer的选择

    2024-03-25 11:18:05       18 阅读
  4. 数据结构——双向链表(C语言版)

    2024-03-25 11:18:05       15 阅读
  5. es6的核心语法

    2024-03-25 11:18:05       19 阅读
  6. 在DelayMS加入bsp_Idle,把单片机延时空闲利用起来

    2024-03-25 11:18:05       11 阅读
  7. 56. 携带矿石资源(第八期模拟笔试)

    2024-03-25 11:18:05       18 阅读
  8. python的基本语法解析

    2024-03-25 11:18:05       18 阅读
  9. 【编程向导】代码管理-Git二期期讲解

    2024-03-25 11:18:05       16 阅读
  10. leetcode - 284. Peeking Iterator

    2024-03-25 11:18:05       17 阅读
  11. 天猫开店怎么发布产品

    2024-03-25 11:18:05       16 阅读
  12. 蓝桥杯刷题_day3

    2024-03-25 11:18:05       15 阅读
  13. vue v-for指令

    2024-03-25 11:18:05       15 阅读