STM32开发板入门教程(三) - SysTick 定时器
时间:11-28
来源:互联网
点击:
本教程的主角是:SysTick |
通常实现Delay(N)函数的方法为: for(i = 0; i <= x; i ++); |
对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫 秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。 |
Cortex-M3的内核中包含一个SysTick时钟。SysTick 为一个24位递减计数器,SysTick设定初值并使能后,每经过1个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续计数,同时内部的COUNTFLAG标志会置位,触发中断(如果中断使能)。 在STM32的应用中,使用Cortex-M3 内核的SysTick作为定时时钟,设定每一毫秒产生一次中断,在中断处理函数 |
注: 全局变量TimingDelay |
外部晶振为8MHz,9倍频,系统时钟为72MHz,SysTick的最高频率为9MHz(最大为HCLK/8),在这个条件下,把SysTick 效验值设置成9000,将SysTick 时钟设置为9MHz, 就能够产生1ms的时间基值,即SysTick产生1ms的中断。 |
使用ST的函数库使用systick的方法 1、调用SysTick_CounterCmd() 失能SysTick计数器 2、调用SysTick_ITConfig () 失能SysTick中断 3、调用SysTick_CLKSourceConfig() 设置SysTick时钟源。 4、调用SysTick_SetReload() 设置SysTick重装载值。 5、调用SysTick_ITConfig () 6、调用SysTick_CounterCmd() 开启SysTick计数器 |
SysTick //SysTick设置 void SysTick_Config(void) { } |
Delay_Ms void Delay_Ms(u32 nTime) { } |
TimingDelayMs_Decrement void TimingDelay_Decrement(void) { } |
SysTickHandler void SysTickHandler(void) { } |
NVIC_Configuration 中断向量表配置 void NVIC_Configuration(void) { #ifdef #else #endif } |
STM32入门教程SysTick定时 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)