mini stm32开发板入门教程(10)
发布时间:2021-06-06
发布时间:2021-06-06
mini stm32开发板入门教程
[原创]MINI-STM32开发板入门教程(三)系统时钟SysTick
(一)背景介绍
在传统的嵌入式系统软件按中通常实现Delay(N)函数的方法为:for(i=0;i<=x;i++);
x
---对应于对应于N毫秒的循环值
对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。
(二)STM32SysTick介绍
Cortex-M3的内核中包含一个SysTick时钟。SysTick为一个24位递减计数器,SysTick设定初值并使能后,每经过1个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续计数,同时内部的COUNTFLAG标志会置位,触发中断(如果中断使能情况下)。
在STM32的应用中,使用Cortex-M3内核的SysTick作为定时时钟,设定每一毫秒产生一次中断,在中断处理函数里对N减一,在Delay(N)函数中循环检测N是否为0,不为0则进行循环等待;若为0则关闭SysTick时钟,退出函数。
注:全局变量TimingDelay,必须定义为volatile类型,延迟时间将不随系统时钟频率改变。
(三)STSysTick库文件
使用ST的函数库使用systick的方法1、调用SysTick_CounterCmd()2、调用SysTick_ITConfig()
3、调用SysTick_CLKSourceConfig()4、调用SysTick_SetReload()5、调用SysTick_ITConfig()6、调用SysTick_CounterCmd()
--失能SysTick计数器--失能SysTick中断--设置SysTick时钟源。--设置SysTick重装载值。--使能SysTick中断--开启SysTick计数器
(四)SystemTick工程实战
外部晶振为8MHz,9倍频,系统时钟为72MHz,SysTick的最高频率为9MHz(最大为HCLK/8),在这个条件下,把SysTick效验值设置成9000,将SysTick时钟设置为9MHz,就能够产生1ms的时间基值,即SysTick产生1ms的中断。
/*Configurethesystemclocks*/RCC_Configuration();SysTick_Configuration();
上一篇:品质成本管理
下一篇:信息化教学设计(模板1)