资料介绍
提到systick 不得不抱怨以下STM32 的用户手册,既然提供了systick 的功能,为啥手册里却只提了一下?后来笔者上网搜的时候,才发现,抱怨的不仅仅是我一个人。闲话不说,下面将笔者搜集的资料进行总结。
1. systick介绍
Systick 就是一个定时器而已,只是它放在了NVIC 中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。没有学过操作系统的同学,可能会很郁闷,啥叫滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。这个心跳,可以通过定时器来周期性触发,而这个定时器就是systick。很明显,这个“心跳”是不允许任何人来随意地访问和修改的。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。知道systick 在系统中的地位后,我们来了解systick 的实现。注意,本期教程并没有讲述systick 如何在操作系统中的运行,因为这对初学者来说比较复杂。我们这里只是举例说明systick 的使用。它有四个寄存器,笔者把它列出来:
STK_CSR, 0xE000E010 -- 控制寄存器
STK_LOAD, 0xE000E014 -- 重载寄存器
STK_VAL, 0xE000E018 -- 当前值寄存器
STK_CALRB, 0xE000E01C -- 校准值寄存器
现在我们想通过Systick 定时器做一个精确的延迟函数,比如让LED 精确延迟1 秒钟闪亮一次。
思路:利用systick 定时器为递减计数器,设定初值并使能它后,它会每个系统时钟周期计数器减1,计数到0 时,SysTick 计数器自动重装初值并继续计数,同时触发中断。
那么每次计数器减到0,时间经过了:系统时钟周期* 计数器初值。我们使用72M 作为系统时钟,那么每次计数器减1 所用的时间是1/72M,计数器的初值如果是72000,那么每次计数器减到0,时间经过(1/72M) * 72000 =0.001,即1ms。
现在我们做出来的Delay(1),就是1 毫秒延迟。Delay(1000)就是1 秒。有了以上的思路后,systick 的编程非常简单。首先,我们需要有一个72M 的systick 系统时钟,那么,使用下面这个时钟就OK!SystemInit();
这个函数可以让主频运行到72M。可以把它作为systick 的时钟源。为了配合演示,可以使用LED 显示来做,于是我们设置了GPIO_Config();初始化函数,初始化了芯达STM32 开发板上的LED4 灯。
接着开始配置systick,实际上配置systick 的严格过程如下:使用ST 的函数库使用systick 的方法:
1、调用SysTick_CounterCmd() -- 失能SysTick 计数器
2、调用SysTick_ITConfig () -- 失能SysTick 中断
3、调用SysTick_CLKSourceConfig() -- 设置SysTick 时钟源。
4、调用SysTick_SetReload() -- 设置SysTick 重装载值。
5、调用SysTick_ITConfig () -- 使能SysTick 中断
6、调用SysTick_CounterCmd() -- 开启SysTick 计数器
- STM32入门(十五)----SysTick系统定时器
- STM32单片机入门教程之GPIO编程的详细资料说明 61次下载
- 西门子PLC教程之结构化编程的详细资料说明 37次下载
- 什么是SysTick定时器?实现STM32时钟系统的详细资料说明 3次下载
- 单片机入门视频教程之基本电路知识的详细资料说明 27次下载
- FPGA入门系列实验教程之液晶1602显示和相关资料合集免费下载 18次下载
- DSP设计与应用教程之汇编程序设计举例的资料说明 19次下载
- FPGA教程之FPGA入门闪烁灯实验的详细资料说明 25次下载
- AIR202 Luat系列入门教程之控制LED小灯的详细资料说明 19次下载
- C语言入门基础教程之函数的详细资料说明 6次下载
- Python基础教程之Python快速入门课件资料免费下载 314次下载
- Linux入门教程之Linux的基本操作详细资料说明 14次下载
- 芯达STM32入门系列教程之Systick编程入门资料 10次下载
- 打开LabvIEW编程之门_LabVIEW入门篇 0次下载
- STM32入门系列教程之七《GPIO编程》 1751次下载
- 个人对STM32 SysTick的总结(寄存器操作) 1359次阅读
- 关于SYSTICK的COUNTFLAG标志的小疑惑 1079次阅读
- SysTick时钟 711次阅读
- STM32F103系列开发_点亮LED灯 2117次阅读
- STM32的SysTick时钟源是来自Cortex系统定时器吗? 5295次阅读
- SysTick定时器介绍,SysTick定时器寄存器 1.7w次阅读
- STM32单片机Systick函数的使用方法 5875次阅读
- STM32单片机SysTick系统滴答功能解析 5899次阅读
- STM32单片机对Systick心跳定时器的设计 4082次阅读
- STM32单片机的SYSTick定时器的设置 3719次阅读
- 如何使用STM32实现systick的精确延时 5841次阅读
- SysTick定时器实现走马灯的功能 2662次阅读
- 如何用SysTick实现测量程序运行时间 5869次阅读
- STM32知识:什么是SYSTICK 作用是什么 5w次阅读
- PLC编程是什么?图解PLC编程入门教程 6.8w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 651单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 751单片机大棚环境控制器仿真程序
- 1.10 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多