STM32入门:Systick(滴答定时器)学习

日期: 2024-01-24 17:01:09|浏览: 378|编号: 30290

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

STM32入门:Systick(滴答定时器)学习

(系统滴答定时器)学习一、简介

是STM32的系统定时器,也称为系统tick定时器。 它是一个 24 位倒计时器。 当计数到0时,会自动从寄存器中重新加载初始计时值,并开始新一轮的计数。

信号来自系统时钟,不分频为72MHz,8分频为9MHz。从下图时钟树可以看出。

有4个寄存器控制定时器,如下:

控制和状态寄存器 (CTRL)

重载值寄存器(LOAD)

当前数字寄存器(VAL)

校准值寄存器(CALIB)

2.延迟思路分析与实现(库函数版)

《STM32中文参考手册_V10》9.1.1节中有这样一句话:

系统节拍校准值固定为9000。当系统节拍时钟设置为9MHz(HCLK/8的最大值)时,生成1ms时基。

可以看到,对于延迟的初始化,直接将系统时钟除以8,达到9MHz的频率,得到1ms 1s的时基。

这里纠正一下我之前的理解。 频率与时间的换算公式为f=1/T。 该芯片的系统频率为72MHz,即1/秒产生一个周期的振动,1/秒即1/72微秒。 ,应该是为了让时间更加准确,所以模块对时钟进行了8分频(我不明白为什么时钟要进行8分频,这只是猜测),8分频运算后的时钟只是9M,此时模块每1/秒计数一次,即1/9微秒。 需要计数9次才能生成1us的时钟,所以下面的值是/=9。这里的计算大致是这样的,很简单,但是我最近才弄清楚,所以我再解释一下,感谢观看!

提醒:请联系我时一定说明是从101箱包皮具网上看到的!