《嵌入式系统》知识总结12:SysTick定时器

news2025/7/10 1:56:55

SysTick定时器

 系统时钟(SysTick)

Corte-M3在内核中包含的简单定时器
• 该定时器的时钟源可以来自CM3内部时钟(FCLK),或CM3外部时钟(STCLK)
• 在STM32微控制器中,SysTick的时钟源可以是:“AHB时钟”、或者“AHB时钟/8”
SysTick定时器是一个24位递减计数器
• 设置初值、允许计数后,每来一个时钟,计数值减1
• 计数值减为0时,计数器被自动载入初值、继续计数
同时内部标志COUNTFLAG被置位、并触发中断
• SysTick中断连接中断控制器NVIC,异常号为15

 

 SysTick寄存器

 SysTick timer工作分析

SysTick是一个24位的定时器,即一次最多可以计数224 个时钟脉冲,这个脉冲计数值被保
存 到 当 前 计 数 值 寄 存 器 VAL (SysTick current value register) 中,只能减计数,每接收到一个时钟脉冲VAL的值就减1,直至0,当VAL的值被减至0时,由硬件自动把重载 寄 存 器 LOAD ( SysTick reload valueregister)中保存的数据加载到VAL,重新向下计数。当VAL的值被计数至0时,触发异常,就可以在中断服务函数中处理定时事件了。

要 使 SysTick 进 行 以 上 工 作 必 须 要 进 行SysTick进行配置。它的控制配置很简单,只有三个控制位和一个标志位,都位于寄存器SysTick_CTRL ( SysTick control andstatus register )中

控制和状态寄存器(SysTick_CTRL)

 

(12)STCLKAHB预分频时钟被8分频后送内核,为STCLK
(13)FCLKAHB预分频时钟不分频送内核,为FCLK
(14)APB1时钟
(16)APB2时钟
APB总线有APB1和APB2,因此有两个APB预分频器,AHB预分频时钟通过它们进行分频,当对应外设被使能的情况下,分别得到APB1时钟PCLK1和APB2时钟PCLK2

重载值寄存器(SysTick_LOAD)

当前值寄存器(SysTick_VAL )

 每经过一个SysTick时钟周期,VAL寄存器值-1
 读取寄存器:返回当前VAL值
写 寄 存 器 : 清 零 VAL , 还 会 使 CTRL 寄 存 器 中COUNTFLAG位清0

校准值寄存器(SysTick_CALIB)

 SysTick寄存器编程

 

(1)禁止SysTick定时器
(因为SysTick可能已经被允许了)
SysTick->CTRL = 0; // 关闭SysTick
(2)写入重载值
SysTick->LOAD = 256-1; // 假设计数值为256
(3)清除当前值为0
(向当前值寄存器SysTick_VAL写入任何值)
SysTick->VAL = 0;
(4)允许SysTick定时器
SysTick->CTRL = 1; // 打开SysTick 

SysTick结构定义

SysTick结构定义
系统时钟SysTick属于Cortex内核部件
驱动程序定义在core_cm3.h(不是core_cm3.c)文件
 SysTick寄存器的结构类型

typedef struct
{ __IO uint32_t CTRL;
__IO uint32_t LOAD;
__IO uint32_t VAL;
__I uint32_t CALIB;
} SysTick_Type;

有关地址定义的语句如下:
 

#define SCS_BASE (0xE000E000)
#define SysTick_BASE (SCS_BASE + 0x0010)
#define SysTick ((SysTick_Type *) SysTick_BASE)

 SysTick精确延时

软件延时

 • 利用内核执行循环实现,延时的时间无法精确测量,有很大的局限性

可以利用SysTick timer实现基于硬件的精确延时
• 理论上它的最小计时单位为AHB的时钟周期,即1/72000000 秒,72分之一的微秒,足以满足大部分应用需求。

main函数

 整个main函数的流程就是先初始化LED、配置SysTick定时器之后,就进入死循环,轮流点亮LED1、LED2、LED3,点亮的时间为精确的500ms。

配置并启动SysTick timer

SysTick_Init() 这个函数,是由用户在SysTick.c这个文件中实现的,其功能是启动系统滴答定时器
SysTick,并将SysTick配置为 10 us 中断一次

SysTick应用

可用于精确延时

  • 系统时钟72MHz,最小的计时单位(时钟周期)(1/72)×10-6秒、即72分之一的微秒

使用SysTick进行时间测量

  •  当我们开启SysTick定时器后,定时器开始工作,我们可以定义一个变量a(初值为0)来对中断次数进行记录,在定时器进入中断时a++,当我们关闭定时器时,将变量a的数值乘以定时器的中断周期就等于待测时间。一般利用该功能测量程序的运行时间。

 SysTick可作为操作系统的时基

  •  例如:操作系统可以为多个任务分配不同数目的时间片,确保没有一个任务能霸占系统;或者将每个定时器周期的某个时间范围赐予特定的任务等
  • 因为SysTick为CM3的内核资源,软件在不同芯片厂商的CM3器件间的移植工作得以简化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平板触控笔哪款好用?电容笔牌子排行

现如今,电容笔越来越受欢迎,不少人在记笔记、学画画甚至是玩游戏的时候都会使用它。最近看到很多人问,iPad电容笔哪款好用?针对这个问题,我来给大家推荐四款公认好用的平替电容笔,一起来看看吧。 一、主动…

实验篇(7.2) 08. 通过安全隧道访问内网服务器 (FortiClient-IPsec) ❀ 远程访问

【简介】通过对SSL VPN与IPsec VPN的对比,我们知道SSL VPN是基于应用层的VPN,而IPsec VPN是基于网络层的VPN,IPsec VPN对所有的IP应用均透明。我们看看怎么用FortiClient实现IPsec VPN远程访问。 实验要求与环境 OldMei集团深圳总部部署了一台…

眼底图片解读(对比图!!!)

目录 1. 前言 2.常见眼底解析 (1) 黄斑变性 (2) 糖尿病视网膜病变 (3) 青光眼 (4) 视网膜血管阻塞 (5)视网膜裂孔和脱离 1. 前言 眼底图像是通过眼底摄影等技术获取的眼底部位的影像,可以提供关于眼睛健康和疾病的重要信息。以下是眼底图像中常见的信息和相关…

只见新人笑,不见旧人哭 ChatGPT淘汰了多少产品?快来了解!

ChatGPT作为目前世界上最先进的人工智能聊天工具,其GPT模型就是一种自然语言处理(NLP)模型,使用多层变换器(Transformer)来预测下一个单词的概率分布,通过训练在大型文本语料库上学习到的语言模…

chatgpt赋能python:Python自动运行教程:让你的工作更智能化

Python自动运行教程:让你的工作更智能化 Python是一种高级、解释型、面向对象的编程语言,被广泛应用于数据分析、机器学习和自动化任务等领域。除此之外,Python还能够实现自动化运行,让用户无需手动干预,从而减轻工作…

Think系列产品进入BIOS的操作方法

Think系列产品进入BIOS的操作方法: 适用范围:ThinkPad全系列笔记本ThinkCentre全系列一体机ThinkStation全系列工作站 温馨提示:如果您用的是Win8/8.1系统,小乐强烈建议您在系统下执行“重启”后的开机界面(切记:不是从…

DynaMask:用于实例分割的动态掩码选择

文章目录 DynaMask: Dynamic Mask Selection for Instance Segmentation摘要本文方法Dual-Level FPNRegion-Level FPNFeature Aggregation Module (FAM)Mask Switch Module (MSM)损失函数 实验结果 DynaMask: Dynamic Mask Selection for Instance Segmentation 摘要 具有代表…

共见·价值成就|光环云与您相约2023亚马逊云科技合作伙伴峰会!

在云计算蓬勃发展的今天, 在推动业务发展、实现共赢的过程中, 价值成就,是亚马逊云科技对合作伙伴 自始至终的承诺。 为助力合作伙伴成就价值,共建成长路径, 2023亚马逊云科技合作伙伴峰会将于 6月27日在上海世博…

跟着LearnOpenGL学习7--坐标系统

文章目录 一、概述二、变换过程三、局部空间四、世界空间五、观察空间六、裁剪空间6.1、正射投影6.2、透视投影 七、组合变换八、3D实战8.1、创建模型矩阵8.2、创建观察矩阵8.3、创建投影矩阵8.4、变换矩阵传入着色器 九、3D立方体9.1、Z缓冲9.2、更多的立方体 一、概述 OpenG…

【022】C++的结构体、共用体以及枚举详解(最全讲解)

C的结构体、共用体以及枚举详解 引言一、结构体的概述二、结构体变量的操作2.1、结构体变量的初始化2.2、清空整个结构体变量2.3、键盘给结构体变量中的成员赋值2.4、单独操作结构体中的成员2.5、相同类型结构体变量之间的赋值 三、结构体嵌套结构体四、结构体数组五、结构体指…

JUC基础-0531

3 线程间通信 线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。我们来基本一道面试常见的题目来分析 多线程编程步骤: 第一步:创建资源类,在资源类创建属性和操作方法第二步:在资源…

电脑录音软件哪个好用?如何录制声音?

案例:有没有好用的电脑录音软件分享? 【使用手机录制电脑上的声音,会录入外界的杂音,导致录音文件质量不佳。我需要一款支持录制电脑声音的软件,小伙伴们有没有好用的电脑录音软件推荐?】 电脑录音软件成…

docker安装RabbitMQ教程(2023年最详细)

1.使用docker查询rabbitmq的镜像 docker search rabbitmq 2.安装镜像 如果需要安装其他版本在rabbitmq后面跟上版本号即可 docker pull rabbitmq:3.7.7-management 说明 docker pull rabbitmq:版本号 -management 安装name为rabbitmq的这里是直接安装最新的 docker pull …

算法leetcode|54. 螺旋矩阵(rust重拳出击)

文章目录 54. 螺旋矩阵:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java:每次循环移动一步:每次循环完成一个顺时针&#xff1a…

玩转 GPT4All

目录 什么是Chatgpt 什么是gpt4all 如何使用 第一步:下载LLM模型 第二步:下载代码 第三步:将模型替换到 第四步:执行启动命令 第五步:生成自己的客户端 第六步:启动 第七步:配置UI 什么…

【CesiumJS入门】(3)ImageryLayer之图层卷帘

前言 上一篇博客简单得介绍了影像图层并成功在视图上加载出来了,而今天我们来实现一个简单的可视化效果,影像图层卷帘。 前置知识:Cesium 事件详解(鼠标事件、相机事件、键盘事件、场景触发事件)_cesium点击事件_GIS…

OPT CST 慕藤光

OPT 波特率 数据长度 停止位 奇偶校验 9600 bps 8 bits 1 bit 无 所有通讯字节都采用ASCII码 特征字 = $命令字 = 1,2,3,4 打开对应通道电源关闭对应通道电源设置对应通道电源参数读出对应通道电…

【论文阅读】Twin Neural Network Regression

论文下载 GitHub bib: ARTICLE{SebastianKevin2022Twin,title {Twin neural network regression},author {Sebastian Johann Wetzel and Kevin Ryczko and Roger Gordon Melko and Isaac Tamblyn},journal {Applied AI Letters},year {2022},volume {3},number …

SpringBoot整合邮箱验证码实现用户注册

唠嗑部分 今天我们来分享一下在系统开发过程中,如何使用验证码来验证用户并完成用户注册 首先来看一下成品界面展示 说一下以上注册功能的设计: 用户手动输入用户名(全数据库唯一)、密码、确认密码、邮箱地址(单个邮箱最多可注册3个用户)、正确的邮箱…

Arm 推出 2023 全面计算解决方案,加速终端 AI 应用开发和部署

在当今数字化时代,人们对移动端计算能力的要求已经上升到了前所未有的高度。他们需要移动设备具有更快、更先进、更持久的计算能力,以提高生产力和生活质量。而科技厂商在满足人们对移动端计算能力的需求的同时,还需要从整个生态系统的角度出…