stm32之SysTick定时器

在做项目用到时间片轮询架构 故用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 中断一次!!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值