所需E币: 5
时间: 2019-12-24 14:32
大小: 437KB
芯达STM32入门系列教程之十一[pic][pic]STM32入门系列教程Systick的编程[pic](2010-04-25)[pic]提到systick不得不抱怨以下STM32的用户手册,既然提供了systick的功能,为啥手册里却只提了一下?后来笔者上网搜的时候,才发现,抱怨的不仅仅是我一个人。闲话不说,下面将笔者搜集的资料进行总结。[pic]介绍Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。没有学过操作系统的同学,可能会很郁闷,啥叫滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。这个心跳,可以通过定时器来周期性触发,而这个定时器就是systick。很明显,这个“心跳”是不允许任何人来随意地访问和修改的。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。知道systick在系统中的地位后,我们来了解systick的实现。注意,本期教程并没有讲述systick如何在操作系统中的运行,因为这对初学者来说比较复杂。我们这里只是举例说明systick的使用。它有四个寄存器,笔者把它列出来:STK_CSR,0xE000E010--控制寄存器STK_LOAD,0xE000E014--重载寄存器STK_VAL,0xE000E018--当前值寄存器STK_CALRB,0xE000E01C--校准值寄存器以下部分参考互联网的……