(待分)05STM32F4通用定时器详细讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系列共有个定时器,功能很强大。个定时器分别为:

个高级定时器:和

个通用定时器:和

个基本定时器:和

本篇欲以通用定时器为例,详细介绍定时器的各个方面,并对其功能做彻底的探讨。

是一个位的定时器,有四个独立通道,分别对应着

主要功能是:输入捕获——测量脉冲长度。

输出波形——输出和单脉冲输出。

有个时钟源:

:内部时钟(),来自的

:外部时钟模式:外部输入与

:外部时钟模式:外部触发输入,仅适用于、、,,对应着引脚

:内部触发输入:一个定时器触发另一个定时器。

时钟源可以通过相关位进行设置。这里我们使用内部时钟。

(最高)

定时器挂在高速外设时钟或低速外设时钟上,时钟不超过内部高速时钟,故当不为时,定时器时钟为其倍,当为时,为了不超过,定时器时钟等于。

例如:我们一般配置系统时钟为,内部高速时钟,欲分频为,(因为最高时钟为),那么挂在总线上的时钟为。

《中文参考手册》的页列出与通用定时器相关的寄存器一共个,

以下列出与相关的寄存器及重要寄存器的简单介绍。

控制寄存器()

作用:使能自动重载

定时器的计数器递增或递减计数。

事件更新。

计数器使能

控制寄存器()

从模式控制寄存器()

中断使能寄存器()

作用::使能事件更新中断

:使能捕获比较中断

状态寄存器()

:事件更新中断标志

:捕获比较中断标志

事件生成寄存器()

捕获比较模式寄存器()

:输出比较模式

:输出比较预装载使能,即使能后可以随时改变捕获比较寄存器()的值

:捕获比较选择

捕获比较模式寄存器()

捕获比较使能寄存器()

:上升沿触发下降沿触发

:捕获比较输出使能

计数器()

预分频器()

计数器时钟频率等于([] )。

自动重载寄存器()

当自动重载值为空时,计数器不工作

难道说每次事件都必须装载重载值?

捕获比较寄存器()

输出时:是捕获比较寄存器的预装载值,由的位使能。

输入时:为上一个输入捕获事件()发生时的计数器值。

捕获比较寄存器()

捕获比较寄存器()

捕获比较寄存器()

用来做定时中断

与之相关的时基单元寄存器有

计数器()

预分频器()

自动重载寄存器()

原理:

这里以向上计数为例,即计数器向上计数,当达到所设定的值时,归零重新计数,若使能了更新中断,则在归零时,进入中断。

进入中断的时间为()个计时器周期

而计时器单元时钟是由定时器时钟分频得到,每()个定时器周期计数一次。定时器时钟上文已经讲了,由于挂在总线上

故进入中断的周期为()* ()秒

频率为[()* ()]

利用官方库函数实现每进入中断,改变灯的电平,程序如下

打开时钟,挂在上,所以命令开启时钟。

(); 使能时钟

时钟的配置。

; 自动重装载值

; 定时器分频

; 向上计数模式

;

()初始化

使能中断

(); 允许定时器更新中断。

打开。

(); 使能定时器

配置中断。

中断服务函数编写。

故可见的初始化函数都离不开以下几步

打开设备时钟。

配置参数。

打开设备。

设备需配置后再打开。如果需要配置中断,那么则需要编写中断服务函数。

完整程序如下

( )

{

;

;

(); 使能时钟

; 定时器分频

; 向上计数

; 自动装载值

;

()初始化

(); 允许定时器更新中断

(); 使能定时器

; 定时器中断

; 抢占优先级

; 子优先级

;

();

}

中断服务函数

()

{

(()) 溢出中断

{

( ); 灯电平翻转

}

(); 清除中断标志位

}

然后()函数中();即可

可以计算进入中断的频率为即灯每亮一次,周期为。

相关文档
最新文档