mini stm32开发板入门教程(10)

发布时间: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();

mini stm32开发板入门教程(10).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219