0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 SysTick定时器讲解

CHANBAEK 来源:头条号秋天滴风 作者:头条号秋天滴风 2023-04-21 11:31 次阅读

STM32 SysTick定时器讲解

本文将介绍SysTick定时器、其工作原理寄存器、及对应的应用实例

SysTick定时器简介

首先、我们先解释下定时器,“定时器”:能够定时、计数的器件

SysTick称为系统滴答定时器,它位于Cortex 内核中是一个定时器,可以对输入的时钟进行计数、若输入的时钟具有周期性的变化,则计数也相当于计时。

系统滴答定时器一般用于操作系统,为操作系统提供时基、维持操作系统的心跳; 系统滴答定时器每过一段时间会产生一个中断,根据这个特性、操作系统就可以实现时间片的任务调度。

工作原理分析

从上述两张图我们可以看出:

系统滴答定时器的时钟源是从SYSCLK处经过分频得到的,另外它处于内核中;

重载数值寄存器有24个位、最大值为2^24-1,重载数值寄存器会将其中的数值装载到定时器中;

当每来一个时钟脉冲后,定时器会进行减一的操作(计数值-1);

当计数值降为0时,会触发一个异常; 我们可以在异常处理函数中、自定义功能;

计数值降为0后,会再次重装载数值;

寄存器讲解

以下是寄存器总览:

以下是SysTick定时器简单框图:

以下是SysTick状态和控制寄存器的说明:

以下是SysTick重装载值寄存器的说明:

以下是SysTick当前值寄存器的说明:

以下是SysTick校准值寄存器的说明:

该寄存器可以为软件提供校准信息,由于CMSIS-Core提供了一个名为SystemCoreClock的软件变量,所以没有使用SysTick校准寄存器。 系统初始化函数SystemInit()设置了该变量,而且只要系统时钟配置改变是都会对该变量进行更新。 这种软件手段比利用SysTick校准值寄存器的硬件方式更加灵活。

应用实例

在SysTick的中断函数内1ms打印一次日志

void HAL_SYSTICK_Callback(void)
{
	static uint32_t i = 0;
	i++;
	
	if(i == 1000)
	{
		printf("1ms\\n");
		i = 0;
	}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5036

    浏览量

    117762
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • 时钟
    +关注

    关注

    10

    文章

    1480

    浏览量

    130306
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112050
  • Systick
    +关注

    关注

    0

    文章

    62

    浏览量

    12951
收藏 人收藏

    评论

    相关推荐

    STM32 SYSTICK定时器常见问题

    我们知道,STM32库函数里通常使用来自内核的系统定时器SYSTICK作为时基,实现计数延时。一般来讲,ST公司提供的库函数里将SYSTICK定时器
    发表于 09-13 16:20 2459次阅读

    解嘀嗒定时器SysTick

    第22章 STM32F407的SysTick实现多组软件定时器本章节为大家讲解嘀嗒定时器SysTick
    发表于 08-10 07:59

    Systick定时器基础知识讲解

    Systick定时器基础知识讲解Systick相关寄存库函数讲解delay延时函数
    发表于 08-19 07:18

    SysTick定时器的工作原理介绍

    今天给大家介绍一下 STM32F103 单片机的 SysTick 定时器的工作原理,在给大家讲解新课之前,看一个我们以前写的一个延时函数。
    发表于 11-11 17:17 22次下载

    什么是SysTick定时器?实现STM32时钟系统的详细资料说明

    什么是SysTick定时器?实现STM32时钟系统的详细资料说明主要内容包括了:Systick原理和配置方法,ALIENTEK 延时函数delay
    发表于 01-02 08:00 3次下载
    什么是<b class='flag-5'>SysTick</b><b class='flag-5'>定时器</b>?实现<b class='flag-5'>STM32</b>时钟系统的详细资料说明

    STM32 Systick系统定时器

    @STM32 Systick系统定时器#简介在之前的实验中,我们只用到的delay函数通过while语句做循环的方式来占用时间,达到延时的目的。但是这种方式延时的时间不好把控,无法应用于更加
    发表于 11-25 10:06 4次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>Systick</b>系统<b class='flag-5'>定时器</b>

    嵌入式单片机基础篇(十)之Systick定时器原理及应用

    来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。(3)
    发表于 11-26 11:51 4次下载
    嵌入式单片机基础篇(十)之<b class='flag-5'>Systick</b><b class='flag-5'>定时器</b>原理及应用

    STM32入门(十五)----SysTick系统定时器

    的Cortex-M内核的单片机都具有这个定时器。《STM32参考手册》里的一句话:关于Cortex-M3核心、 SysTick定时器和NVIC的详细说明,请参考另一篇ST的文档和一篇A
    发表于 12-01 15:06 8次下载
    <b class='flag-5'>STM32</b>入门(十五)----<b class='flag-5'>SysTick</b>系统<b class='flag-5'>定时器</b>

    STM32F4: Systick滴答定时器-延时函数讲解(五)

    Systick定时器基础知识讲解Systick相关寄存器库函数讲解delay延时函数讲解
    发表于 12-01 15:21 12次下载
    <b class='flag-5'>STM32</b>F4: <b class='flag-5'>Systick</b>滴答<b class='flag-5'>定时器</b>-延时函数<b class='flag-5'>讲解</b>(五)

    SysTick 定时器

    11.1关于 SysTick 定时器SysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个
    发表于 12-05 14:51 9次下载
    <b class='flag-5'>SysTick</b> <b class='flag-5'>定时器</b>

    STM32定时器US延时

    定时器”介绍的SysTick定时器,该定时器位于Cortex-M3内核中。外设定时器由芯片半导体厂商设计,如
    发表于 12-05 15:36 25次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>US延时

    Stm32入门——Systick定时器

    Stm32入门——Systick定时器Systick定时器是什么?从原理上来说,Systick
    发表于 12-07 17:51 12次下载
    <b class='flag-5'>Stm32</b>入门——<b class='flag-5'>Systick</b><b class='flag-5'>定时器</b>

    STM32学习笔记(5)——系统定时器SysTick

    单独拿出来讲的一个内核外设(所以不要期望在STM32中文参考手册找到它!即使找到也只会叫你看cm3内核编程手册),说明它真的很重要。STM32学习笔记(5)——系统定时器SysTick
    发表于 12-23 19:56 3次下载
    <b class='flag-5'>STM32</b>学习笔记(5)——系统<b class='flag-5'>定时器</b><b class='flag-5'>SysTick</b>

    STM32笔记(七)---Systick系统定时器

    SysTick系统定时器文章目录SysTick系统定时器一、 概念1-1 Systick简介1-2 Sy
    发表于 12-23 20:01 1次下载
    <b class='flag-5'>STM32</b>笔记(七)---<b class='flag-5'>Systick</b>系统<b class='flag-5'>定时器</b>

    STM32SysTick滴答定时器(delay延时函数讲解

    Systick定时器,是一个简单的定时器,对于CM3、CM4内核芯片,都有Systick定时器Syst
    发表于 02-10 10:35 13次下载
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>SysTick</b>滴答<b class='flag-5'>定时器</b>(delay延时函数<b class='flag-5'>讲解</b>)