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