博客首页 | 排行榜 |

xuqj4490的博客

个人档案
博文分类
STM32-SysTick定时器  2010-08-14 21:31

今天想了解下STM32SysTick定时器,结果在用户手册了一直没有找到关于SysTick定时器的说明,我杯具了,而在固件库使用手册里是有相关库函数的说明的。后面我在网上一查,好像很多网友都在抱怨ST太“变态”,用户手册写的相当的不专业,很多该介绍的没有介绍。

当然我还是找到了STM32里关于SysTick定时器的介绍。原来SysTick定时器被捆绑在NVIC中,而且它是CortexM3处理器内部的,也就是说所有以CortexM3为内核的处理器都带有这个SysTick定时器,只是不同的芯片时钟源可能不一样。下面是资料中对它的说明。

CortexM3处理器内部包含了一个简单的定时器。因为所有的CM3芯片都带有这个定时器,软件在不同 CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟(FCLKCM3上的自由运行时钟),或者是外部时钟( CM3处理器上的STCLK信号)。不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要检视芯片的器件手册来决定选择什么作为时钟源。

下面介绍STM32中的SysTick定时器,Systick 部分内容属于NVIC控制部分,一共有4个寄存器,名称和地址分别是:

STK_CSR,      0xE000E010  --  控制寄存器
STK_LOAD,     0xE000E014  --  
重载寄存器
STK_VAL,        0xE000E018  --  
当前值寄存器
STK_CALRB,   0xE000E01C  --   
校准值寄存器

V3.0.0固件库中core_cm3.h里面有一个关于SysTick定时器的函数  static __INLINE uint32_t SysTick_Config(uint32_t ticks)

这个函数的功能包括了选择时钟源(内核时钟),开SysTick定时器中断请求,SysTick定时器使能,以及通过参数ticks设置中断时间。

misc.c中有个函数

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

用于选择选择时钟源,这个函数我觉得实在是多余,费解啊。

 

类别:STM32 |
上一篇:又回来了! | 下一篇:STM32 -USART中断方式
以下网友评论只代表其个人观点,不代表本网站的观点或立场