您的位置:首页 > 其它

stm32之SysTick定时器

2016-03-05 16:54 323 查看
在做项目用到时间片轮询架构 故用SysTick做中断。芯片型号为 stm32f051c8t6

一.我们先看f0的sysTick的时钟来源以及配置。

从数据手册可以看到 systick 来源于 HCLK 看下图



是 HCLK还是HCLK/8 是由寄存器 CTRL的第三位决定的 看下图



我们查看core_cm0.h中的 SysTick_Config函数可知 时钟选择为 HCLK 看下图



二、那么HCLK的时钟又是多少呢?(这里粗略讲一下,详细的可以看我以前写的 ”STM32F107(互联网型)外部晶振用25MHZ
而STM32F103却用8MHZ的原因及其时钟来源分析“ 这篇文章)

在 SetSysClock()函数我们可以看到:



那么 SYSCLK时钟又是多少呢? 我们结合时钟分配图可以算出 48MHZ (我这里采用的是 内部晶振8M)



三、因此我们systick的时钟为48MHZ 那么怎么定时间呢?看数据手册可以知道 LOAD寄存器决定中断的时间:



48MHZ时钟 计数 48次 就是 1us



我这里计数 48000 那么就是 1ms 中断一次!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: