滴答定时器的计数模式_STM32 滴答定时器和普通定时器

本文介绍了Cortex-M3处理器内置的SysTick定时器,它与NVIC结合用于产生SYSTICK异常,简化了操作系统在不同CM3芯片间的移植。SysTick定时器的时钟源可选内部或外部,其中断功能对操作系统至关重要。同时,文章以STM32为例,阐述了通用定时器TIM3的配置步骤,包括时钟使能、设置计数参数、开启中断和启动定时器,以实现定时中断功能。
摘要由CSDN通过智能技术生成

SysTick

定时器和普通定时器

SysTick

定时器

SysTick

定时器被捆绑在

NVIC

中,用于产生

SYSTICK

异常(异常号:

15

)

。在

以前,

大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,

作为

整个系统的时基。

例如,

为多个任务许以不同数目的时间片,

确保没有一个任务

能霸占系统;

或者把每个定时器周期的某个时间范围赐予特定的任务等,

还有操

作系统提供的各种定时功能,

都与这个滴答定时器有关。

因此,

需要一个定时器

来产生周期性的中断,

而且最好还让用户程序不能随意访问它的寄存器,

以维持

操作系统“心跳”的节律。

Cortex

M3

处理器内部包含了一个简单的定时器。因为所有的

CM3

芯片都

带有这个定时器,

软件在不同

CM3

器件间的移植工作得以化简。

该定时器的时

钟源可以是内部时钟

(

FCLK

CM3

上的自由运行时钟)

或者是外部时钟

(

CM3

处理器上的

STCLK

信号)

不过,

STCLK

的具体来源则由芯片设计者决定,

因此不

同产品之间的时钟频率可能会大不相同,

你需要检视芯片的器件手册来决定选择

什么作为时钟源。

SysTick

定时器能产生中断,

CM3

为它专门开出一个异常类

型,并且在向量表中有它的一席之地。它使操作系统和其它系统软件在

CM3

件间的移植变得简单多了,因为在所有

CM3

产品间对其处理都是相同的。

通用定时器

STM32

一共包含

8

个通用定时器,其中,

TIME1

TIME8-

高级定时器,

TIME2~TIME5

通用定时器,

TIME6

TIME7

高级定时器。在这里我使用定时器的

作用是用定时器产生定时中断,以定时器

3

来说明产生定时中断的步骤;

1

)

TIM3

时钟使能。

APB1ENR

1

TIM3

Stm32_Clock_Init

函数里面把

APB1

的分频设置为

2

,所以我们的

TIM3

时钟就

APB1

时钟的

2

倍,等于系统时钟。

2

)设置

TIM3_ARR

TIM3_PSC

的值。

通过这两个寄存器,我们来设置自动重装的值,以及分频系数。这两个参数

加上时钟频率就决定了定时器的溢出时间。

3

)设置

TIM3_DIER

允许更新中断。

因为我们要使用

TIM3

的更新中断,所以设置

DIER

UIE

位,并使能触

发中断。

4

)允许

TIM3

工作。

光配置好定时器还不行,没有开启定时器,照样不能用。我们在配置完后要

开启定时器,

通过

TIM3_CR1

CEN

位来设置。

5

)

TIM3

中断分组设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值