void SysTick_Handler(void)系统滴答时钟中断函数

可以作为整个系统的时基!在小调度程序和实时操作系统中可以用作系统的时基。

微控制器的定时器资源一般比较丰富,比如STM32存在8个定时器,为啥还要再提供一个SYSTICK? 原因就是所有基于ARM
Cortex_M3内核的控制器都带有SysTick定时器,这样就方便了程序在不同的器件之间的移植。而使用RTOS的第一项工作往往就是将其移植到开发人员的硬件平台上,由于SYSTICK的存在无疑降低了移植的难度。

SysTick定时器除了能服务于操作系统之外,还能用于其它目的:如作为一个闹铃,用于测量时间等。
要注意的是,当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作。

由一下三个寄存器控制:

CTRL 寄存器:CTRL 是 SysTick 定时器的控制及状态寄存器
LOAD 寄存器:LOAD 是 SysTick 定时器的重装载数值寄存器
VAL 寄存器:VAL 是 SysTick 定时器的当前数值寄存器
CALIB 寄存器:CALIB 是 SysTick 定时器的校准数值寄存器

3.5版本的库函数与以往的有所区别
不存在stm32f10x_systick.c文件,故原来的一些函数也不存在,比如SysTick_SetReload(u32 reload);SysTick_ITConfig(FunctionalState NewState);等

在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),在core_cm3.h
主要的作用:
1、初始化systick
2、打开systick
3、打开systick的中断并设置优先级
4、返回一个0代表成功或1代表失败
注意:
Uint32_t ticks 即为重装值,
这个函数默认使用的时钟源是AHB,即不分频。
要想分频,调用void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource),
但是要注意函数调用的次序,先SysTick_Config(uint32_t ticks),
后SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

你可能感兴趣的:(stm,STM32)