Systick寄存器

可以和51中的定时器相类比
感觉就是51中定时器的加强版
实现一个小小的Systick要用到四个寄存器

第一个寄存器:CTRL
主要用于初始化Systick,常用的有四个位

其中,位0负责使能(是否启用)

TICKINT用来设置当计时到0的时候是否要进入中断
如果为0就RELOAD初值不断循环
如果为1就进入中断

当然,不中断也可以通过标志位来判断
第16位的COUNTFLAG就相当于51中的标志位
当数到0的时候,这一位会自动变成1
如果你不去读取它,它就一直为1(即使你已经RELOAD开始下一个循环)
不过一旦你去读它,它就马上变0(所谓地硬件复位)

位2是用来确定时钟源,就是选内部还是外部时钟

第二、三个寄存器:LOAD和VAL
LOAD作用是当值减到0的时候重装初值
VAL作用是存放初值

和51的一些对比:
51中设置初值要用65535-XXXXX(初值);
但是32中就是VAL寄存器就是用来赋初值,然后往下减
减到0的时候就通过LOAD寄存器重装

用定时器写一个delay函数

在3.5版本的库函数中与systick相关的函数只有两个
第一个,SysTick_Config(uint32_t ticks),在core_cm3.h头文件中进行定义的。
第二个,void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource),在misc.c文件中定义的。

SysTick_Config(uint32_t ticks)函数里面放n次振动后中断
就相当于51中给TH0和TL0赋值,每减一次就是一个机器周期
(eg.小知识:SysTick_Config(uint32_t ticks)函数的参数不合法的时候会返回1,于是就会进入while死循环卡住)
SystemCoreClock表示当前晶振频率
SystemCoreClock/1就是1s的振动次数
SystemCoreClock/1000就是1ms的震动次数
每一次中断之后都会被RELOAD重新装入初值!!
所以是"中断间隔"而不只是一次中断

中间那个函数SysTick_Handler(void)就是中断函数
定时器走到0就进入这个函数
这里有两条时间线,main中一直卡在while循环
等待着中断把200个数减完,即为两百个中断
(在51中相当于用了那个t记录这个经历了多少次中断,然后if==200)

另外:SysTick寄存器说明在《Cortex-M3权威指南》(chap8.SysTick定时器章节)有说明

Systick寄存器相关推荐

  1. Systick滴答定时器寄存器、delay()延时函数、SysTick_Config函数

    SysTick定时器 SysTick定时器,是一个简单的定时器,对于CM3.CM4内核的芯片都有SysTick定时器.SysTick 是一个 24 位的倒计数定时器,当计数到 0 时,将从RELOAD ...

  2. STM32学习笔记9(SysTick滴答时钟)

    我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸 ...

  3. stm32 systick分析

    本文转自他人帖子:http://www.51hei.com/bbs/dpj-31803-1.html 什么是SYSTICK: 这是一个24位的系统节拍定时器system tick timer,SysT ...

  4. SysTick定时器的一个简单应用

    SysTick即为系统定时器,又称嘀嗒定时器,是Cortex-M3内核的一个外设,集成在NVIC中.SysTick是一个24bit的向下递减的计数器,每计数一次的时间为1/SYSCLK(SYSCLK一 ...

  5. stm32 systick定时器

    systick定时器是系统滴答定时器,一个24位的倒计时定时器,计到0时,将从RELOAD寄存器中自动装载定时初值,只要不把它在Systick控制及状态寄存器中的使能位清楚,就永不停息,即使在睡眠状态 ...

  6. stm32F103的systick时间不准终于找到原因了

    主函数已经定义SysTick_Config(72000000/1000);但是中断void SysTick_Handler(void) 中PIO引脚闪烁的时间总感觉不对,最后在sdk中观察systic ...

  7. 【.Net Micro Framework PortingKit – 12】SysTick驱动开发

    SysTick驱动对TinyCLR来说非常重要,.Net Micro Framework系统的多线程和多任务(对托管代码来说是单任务多线程,但是还存在和托管代码同时运行的任务,如我们用MFDeploy ...

  8. STM32学习及应用笔记一:SysTick定时器学习及应用

     这几年一直使用STM32的MCU,对ARM内核的SysTick计时器也经常使用,但几乎没有仔细了解过.最近正好要在移植一个新的操作系统时接触到了这块,据比较深入的了解了一下. 1.SysTick ...

  9. 滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟

    今天我们来说说SysTick定时器.SysTick定时器在从参考手册中根本没有介绍.我费了九牛二虎之力才在一个犄角格拉里找到SysTick定时器的英文版的说明.在Cotex-M3有介绍,为什么要找ST ...

最新文章

  1. 23-初识正则表达式
  2. 网络安全08-虚拟机运行架构(寄居架构+原生架构)、虚拟机产品简单介绍、windows操作系统--屏蔽系统自动更新
  3. JAVA常见算法题(三十三)---求子串在字符串中出现的次数
  4. PHP框架 CI与TP之MVC比较
  5. python免费课程400节-太原Python编程课哪家比较有优势
  6. django写一个简单的登陆注册
  7. 计算机定时关机教程,电脑定时关机怎么设置|如何让电脑定时关机
  8. Monkey Test
  9. 日本的美景,从谷歌卫星地图上就可以一撇究竟
  10. python 爬虫 | selenium换页问题
  11. 【Laravel系列6.3】框架启动与服务容器源码
  12. python可视化3d柱状图_「Python实现数据可视化」创建3D柱状图
  13. 如何高效设计游戏——从抽奖模型到圆桌算法(上)
  14. CentOS 安装Kerberos服务
  15. 小编教你如何打印出一张好看的思维导图
  16. 常见目标跟踪数据集下载链接整理(更新中)
  17. IDEA 配置Go环境,编写Golang代码,学习笔记(一)
  18. ZStack Cube:超融合3.0,场景化的一体机
  19. nvme命令中prp_NVMe又有新花样!CMB vs HMB
  20. 安阳工学院c语言期末考试题库,安阳工学院期末C语言答案.doc

热门文章

  1. itemCF推荐算法的实现
  2. 【开源】Time-NLP 中文语句中的时间语义识别
  3. 惊暴:“兵马俑”主人或非“秦始皇”
  4. VUE路由跳转传参的七种方法
  5. 前端非常好用的取色器和截图工具
  6. 应急响应 -162天:webshell和内存马查杀
  7. 最大公约数算法GCD
  8. 【论文理解】DQN:Playing Atari with Deep Reinforcement Learning
  9. WIN2008的服务器用西部助手建站后IIS站点如何备份与恢复问题
  10. 暑期学习日记28:js逻辑