你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32中的SysTick

[复制链接]
Eagleson 发布时间:2015-1-21 20:21
本帖最后由 Eagleson 于 2015-1-21 20:23 编辑

Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。
SysTick常被用来精确定时。在网上看到了大家关于讨论的systick 时钟与系统时钟的关系,有的是8分频,有的则直接使用系统时钟,那么情况究竟是什么样的呢
下面是从stm32F4 固件库中查到的关于SysTick的说明
1.jpg
                              
从上面这一段看出 Systick可以选择AHB时钟的8分频,也可以直接使用HCLK。也就是说都是支持的。
下面是时钟树
2.jpg
时钟树上这直接写了是8分频。
下面是在STM32F4xx DSP and Standard Peripherals Library 中查阅到的相关的说明

3.jpg
SysTick时钟选择函数的说明 参数选择
4.jpg
8分频的使用
5.jpg
系统时钟的使用,也就是默认的系统时钟延时为1ms
6.jpg
可以看出SysTick_Config 已经有了相关的配置了。
7.jpg
这是这个函数的定义,在core_cm3.h里面,是有返回值的,如果你设置的SystemFrequency / 1000不符合该函数要求就会返回1,这样这个while循环是跳不出的,一直在循环,只有你设置的值符合要求,程序才能跳出循环继续执行,这句话一般在SysTick_Config(SystemCoreClock / 1000);这句之后,上面这句已经配置好Systick的定时时间为1ms,紧接着 while(SysTick_Config(SystemFrequency / 1000)); 是判断你配置的定时频率是否可以实现,如果可以就继续往下执行,如果不可以就一直停在这里。
SysTick_Config(uint32_t ticks):设置系统嘀嗒时钟并使能中断          在STM32中与CM3内核描述不太一样,这个时钟源有两个选择:AHB/8和AHB,在该函数中是选择了HCLK(SysTick_CTRL_CLKSOURCE_Msk),所以定时时间=ticks / HCLK,当要定时10ms,而HCLK为24MHz时,ticks = 10000 * 24 = 240000。          如果需要选择HCLK/8,可以直接修改这个函数,或在这个函数后跟随misc中的SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)来设置。
STM32中用SysTick延时不宜在中断中使用
如果中断中调用本函数,否则会存在重入问题.另外如果屏蔽了全局中断,则不要使用此函数
在中断里面调用系统延时,操作系统任务调度就挂起了····原因主要还是中断优先级之间的影响引起的。
重入的意思就是:在一个函数没有结束之前,又再次调用这个函数。比如一个函数func()运行过程中被中断,而中断处理中又调用func(),则产生重入的问题。

收藏 评论16 发布时间:2015-1-21 20:21

举报

16个回答
霹雳之火 回答时间:2015-1-21 20:27:24
技术贴,标记
wambob 回答时间:2015-1-21 20:59:28
看到英就头疼
Eagleson 回答时间:2015-1-21 21:11:44
Eagleson 回答时间:2015-1-21 21:12:10

看多了就不晕了
wambob 回答时间:2015-1-21 21:13:22

所以每天看一点
AndyYau-268557 回答时间:2015-1-21 21:50:26
systemtick可以产生不同时基,可以好好利用
lkl0305 回答时间:2015-1-21 23:12:12
很详细
zhangdaijin 回答时间:2015-1-22 07:50:57
希望多有这样的帖子
Eagleson 回答时间:2015-1-22 08:26:46
zhangdaijin 发表于 2015-1-22 07:50
希望多有这样的帖子

谢谢鼓励~~
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版