赞
踩
SysTick时钟,俗称“嘀嗒定时器”,这家伙能按固定的时间产生一次中断,通常是多长时间产生一次中断呢?官方给出的一个时间是1ms
那么,它是怎么准确的产生1ms的呢.. 先来看看这家伙在时钟树的哪里吧
是它,是它,就是它,红色框里的东东,可以看到,它是由HCLK/8得到的,也就是:72MHz/8=9MHz
我们还能在STM32手册上找到这么一句话:系统嘀嗒校准值固定位9000,当系统嘀嗒时钟设为9MHz,产生1ms时间基准.
让我们来看看9000是怎么来的,这里要看下SysTick寄存器的配置了
当然,这个图截得真他妈丑..不过来是可以看到SysTick共有4个寄存器.下面的图盗自别人的博客的, = = 但是链接没法给出,说是禁止URL 真蛋疼
注意看上面的CTRL寄存器的CLKSOURCE位(时钟源位),它有两个选择,一个是内核时钟源FLCK(72MHz),一个是外部时钟源HCLK,这里应该是
分频以后的了,所以应该是HCLK/8(9MHz);注意这里,这里选不同的值,重装寄存器里的值也是不同的.到下面配置的时候再说说.
好,那么我们来解释下9000的固定校准值是怎么来的:
我们知道,我们设定一个计数,那么每次计数器减到0,时间经过了:系统时钟周期
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。