STM32学习笔记——使用SysTick定时器做延时
l
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/322898_2_0.jpg)
l
各寄存器示意图:
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/322898_2_0.jpg)
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/322898_2_5.jpg)
2.SysTick函数
3.0版以后的STM32固件库在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。
CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的全部函数。
[cpp]view plaincopy
- SysTick_Config(uint32_tticks);
该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick IRQ中断。SysTick时钟默认使用系统时钟。
此外,还可以使用SysTick_CLKSourceConfig函数来改变时钟源,使用NVIC_SetPriority设置中断优先级(往后再深入)。
SysTick_CLKSourceConfig函数
函数名 |
SysTick_CLKSourceConfig |
函数原型 |
SysTick_CLKSourceConfig(u32 SysTick_CLKSource) |
行为描述 |
配置SysTick的时钟源 |
输入参数 |
SysTick_CLKSource:SysTick的时钟源 |
输出参数 |
无 |
返回值 |
无 |
前提条件 |
无 |
调用函数 |
无 |
SysTick_CLKSource允许值
SysTick_CLKSource |
描述 |
SysTick_CLKSource_HCLK_Div8 |
SysTick时钟源为AHB时钟的1/8 |
SysTick_CLKSource_HCLK |
SysTick时钟源为AHB时钟 |
评论