【STM32学习】SysTick定时器(嘀嗒定时器)

news2024/12/23 20:04:16

SysTick定时器

  • 一、参考资料
  • 二、时钟源选择与定时时间计算
    • 1、时钟源选择
    • 2、定时时间计算
  • 三、SysTick_Handler中断服务函数

一、参考资料

嘀嗒定时器:时钟源、寄存器

二、时钟源选择与定时时间计算

结合正点原子的代码进行说明:

1、时钟源选择

在这里插入图片描述

从上图可以发现:Cortex系统时钟(嘀嗒定时器)是经过SYSCLK8分频之后得到的;
SYSCLK最高为72MHz,来源为HSI、PLL、HSE;
原子的代码,默认使用的是来自于PLL,且为最高72MHz;

在system_stm32f10x.c中可以看到:三种时钟源的选择方法。

在这里插入图片描述
在这里插入图片描述

在stm32f10x.h中可以看到:HSE默认大小为8MHz,如果要修改晶振大小需要注意。

在这里插入图片描述

2、定时时间计算

以原子默认时钟源配置为例,SYSCLK为72MHz。
众所周知,原子的delay.c的延迟函数使用的为systick定时器,并且在要先调用delay_init函数

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

可以看到SysTick_CLKSourceConfig函数无非就是配置其CTRL寄存器,来控制使用哪个时钟源,这里我不在贴寄存器的配置了,可以去看上边的参考链接。

原子选择的是PLL,倍频到72MHz,然后再进行8分频(无论选择哪个时钟源都要进行8分频),72MHz/8=9MHz,也就是说systick此时的频率是9MHz;

再继续看,延迟函数:

在这里插入图片描述

这个函数如果nus=1,则装入的值为fac_us,也就表示这个函数能延迟1us。为什么呢?
根据systick的工作原理可以知道,当装入寄存器的值一直减少,当变为0的时候,表示延迟结束。
也就说能够延迟的时间为:装载值*减少一个数所需要的时间

装载值可以发现:当nus=1时,fac_us=SystemCoreClock/8000000。SystemCoreClock为72M,则fac_us=9。即装载值为9。
减少一个数所需要的时间:即为systick的频率,也就是9MHz,转换为时间为1/9MHz。
延迟时间:9*1/9MHz=1us (Hz对应s,KHz对应ms,MHz对应us)

为什么要除以8M?就是为了使得当一个fac_us时,装入的数,刚好为1us。
举个例子:假设SYSCLK选择为8MHz,则systick频率为1MHz;fac_us为8M/8M=1,则延迟时间为1*1/1MHz=1us。

延迟原理不在赘述,无非就是do while死循环,一直读取CTRL寄存器,判断标志位是否置为1。

三、SysTick_Handler中断服务函数

systick为定时器,那么其中断服务函数在哪里?在stm32f10x_it.c中

那么再问一句,该中断服务函数是每减少装载值的一个数就触发一次,还是装载值减少到0才会触发呢?

我进行了软件模拟仿真,证明是装载值减少为0才会触发该中断服务函数,也就是说等延迟结束的时候会触发

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

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

相关文章

通讯录的实现(详解)(后附完整源代码)

通讯录的实现一.所需要的功能二.大致菜单三.创建通讯录四.增加联系人五.显示联系人六.查找联系人七.删除联系人八.修改联系人一.所需要的功能 对于通讯录来说,我们需要它实现以下几个功能。 1.人的信息:姓名年龄性别电话地址。 2.可以存放100个人的信息…

VMware Workstation Pro 16安装Windows 11

1:首先在机器中安装VMware Workstation Pro。 2:准备Windows 11的安装镜像。 3:安装Windows 11的系统要求,这个很关键不满足条件无法安装,其中我们只需要注意系统固件和TPM这两项就行。 4:运行VMware Wor…

使用SQL4Automation让CodeSYS连接数据库

使用SQL4Automation让CodeSYS连接数据库 摘要:本文旨在说明面向CodeSYS的数据库连接方案SQL4Automation的使用方法。 1.SQL4Automation简介 1.1.什么是SQL4Automation SQL4Automation是一套工业用途的软件解决方案,它主要的功能就是为PLC和机器人控制提…

王道操作系统笔记(一)———— 计算机系统概述

文章目录一、操作系统基本概念1.1 基本概念1.2 四大特征1.3 目标和功能二、操作系统的分类与发展三、操作系统的运行环境3.1 运行机制3.2 中断和异常3.3 系统调用四、操作系统的体系结构4.1 宏内核与微内核4.2 分层结构4.3 模块化4.4 外核五、操作系统引导六、虚拟机一、操作系…

nacos2.x集群版搭建

1. 预备环境准备 请确保是在环境中安装使用: 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。--这里使用linux系统64 bit JDK 1.8;下载. 配置。Maven 3.2.x;下载. 配置。3个或3个以上Nacos节点才能构成集群。官网地址:集群部署说明 2、服务器…

Android 深入系统完全讲解(12)

11 跟踪一个服务,直接找到驱动实现 如果说我自己学习整个系统,直到底层驱动的方法,我想说的就是我常用的就是跟踪震动这个模块,而为什么是这个,主要是简单,但是又是从上到下都具备,对于学习系统…

【OpenCV】拾遗

前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题,便于以后参考。 以下所有内容均基于VS2015 OpenCV_v4.5.1 及 VS Code MinGW_v4.3.5 CMake_v3.20.0 OpenCV_v4.5.1,前者的配置教程可以参考这个链接,后者的配置教程可以参考这个链…

2022年衣物清洁行业市场报告:洗衣液等四大高增长类目分析

随着人们经济水平的提高以及消费观念的升级,当前个护家清用品逐渐朝品质化、精细化、个性化的方向发展,类目衍生更替更频繁、迭代速度更快。 得益于庞大的人口规模,个护家清产品规模巨大,衣物清洁行业虽增速放缓但仍在个护家清行…

OpenFoam收缩扩张喷管(拉瓦尔喷管)边界条件的设置

简介 收缩扩张喷管(也成拉瓦尔喷管)广泛应用于火箭推进。将其流动特性定性描述如下: (1)当入口流量较小时,不出现雍塞,流速先增大后减小,全程为亚声速。出口压力即为大气压&#x…

金融数学建模——2022年大湾区杯金融数学建模B题(解题思路及部分python代码)

目录 一、概述 二、赛题及解读 1.赛题详情 2.赛题解读 三、解题方法 1.第一问 第一问部分代码 2.第二问 第二问部分代码 3.第三问: 第三问部分代码 4.第四问 三、总结 一、概述 这次比赛是我们队伍第一次参加金融数学建模,尽管在比赛前用2020年…

数据结构与算法4—队列

队列 队列的定义 队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。队列的修改是依先进先出的原则进行的。队列的基本操作 1.初始化队…

Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

Vue前后端页面下载功能实现效果图后台下载服务实现前台简单实现[ 文章推荐 ] Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解 效果图 首先看下演示效果。 点文档的话是 html 文档,跳转的预览,点下载的话是压缩包…

pycharm python 程序打包相关

前言 终于入门了python打包这个大话题,将目前学到的技能分享一下。 pycharm启动虚拟环境pipenv 缩小打包 和很多博客说的一样,打包那么大是因为打包了多余的库,因此想要缩小就需要一个干净的,没有多余的库的环境进行打包。也就是…

一文读懂内容生态驱动的“菌落式”增长

健康的内容生态对文娱行业极为重要。本文详细介绍了用内容生态建设驱动用户“菌落式”增长的路径。点击文末“阅读原文”立即观看完整直播回放,并下载演讲文档。内容生态与用户增长内容生态建设与用户增长互为因果。一方面,出圈的内容直接带来用户增长。…

《2022大数据产业年度创新服务企业》榜重磅发布丨金猿奖

‍年度金猿榜单/奖项本届“数据猿年度金猿策划活动——2021大数据产业创新服务企业榜单/奖项”由金猿&数据猿&上海大数据联盟共同推出。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年下半年度,由数据猿、金猿组委会共同推出的第五届 “年度金猿季…

通过usb利用adb实现android手机和pc机通信

1、 adb forward 原理概述 adb forward 的功能是建立一个转发 如:adb forward tcp:8000 tcp:9000 的意思是,将PC端的 8000 端口收到的数据,转发给手机中的 9000 端口。 但是光执行这个命令还不能转发数据,还需要完成下面两个步骤才…

【主色提取】HSV 颜色空间与 RGB 颜色空间互相转化的公式和代码

系列文章目录 第二章 主色提取之颜色空间转化 目录 系列文章目录 文章目录 前言 一、HSV 和 RGB 颜色空间 二、颜色转化 1. RGB to HSV 2. HSV to RGB 三、 完整代码 前言 HSV 颜色空间和 RGB 颜色空间的转化。 一、HSV 和 RGB 颜色空间 RGB颜色使用的最多&#xff0…

C语言详解【通讯录的实现】

前言: 在之前的学习中我们已经了解了结构体的一些知识,有了之前的知识的储备,在这里我们就可以尝试通讯录的实现。 目录问题描述基本流程前期的准备工作实现过程第一阶段第二阶段第三阶段1.增加联系人2.删除联系人3.打印通讯录4.查找指定联系…

高等数学(第七版)同济大学 习题11-7 个人解答

高等数学(第七版)同济大学 习题11-7 函数作图软件:Mathematica 1.试对曲面Σ:zx2y2,x2y2≤1,Py2,Qx,Rz2验证斯托克斯公式.\begin{aligned}&1. \ 试对曲面\Sigma:zx^…

yolov5+车道线检测

目标检测与车道线检测在自动驾驶以及车辆定位中起着重要的辅助作用,是环境感知中不可缺少的一个部分。基于深度学习的车道线检测方法近年来也在不断的提升,比如论文:Ultra Fast Deep Lane Detection with HybridAnchor Driven Ordinal Classi…