您的位置:首页 > 其它

5、STM32 定时器的使用

2016-11-27 13:36 232 查看
    

    STM32 一共有 11 个定时器, 其中 2 个高级控制定时器, 4 个通用定时器和 2 个基本定时器, 以及 2 个看门狗定时器和 1 个系统滴答定时器(SysTick), 计数器均为 16 位。

定时器
计数器类型
预分频系数
DMA请求
捕获/比较通道
互补输出
TIM1
向上/向下
1-65536
可以
4

TIM8
1-65536
TIM2
TIM3
TIM4
TIM5
向上/向下
1-65536
可以
4
没有
TIM6
TIM7
向上
1-65536
可以
0
没有
    

    TIM2-TIM5 是通用定时器, TIM6-TIM7 是基本定时器, 其时钟由 APB1 输出产生。TIM1 和 TIM8 是高级定时器, 时钟由 APB2 输出产生。

 

l  通用 TIMx 定时器的功能

A、16位向上、向下、向上/向下自动装载计数器。

B、16位可编程(可实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间。

C、4个独立通道

   - 输入捕获

   - 输出比较

   - PWM生成(边缘或中间对齐模式)

   - 单脉冲模式输出

D、使用外部信号控制定时器和定时器互联的同步电路。

E、如下事件将发生中断/DMA

   - 更新 :计数器向上溢出/向下溢出,计数器初始化。

   - 触发事件(计数器启动、停止、初始化或者由内部/外部触发技术)

   - 输入捕获

   - 输出比较

F、支持针对定位的增量(正交)编码器和霍尔传感器电路。

G、触发输入作为外部时钟或者按照周期的电流管理。

计数器的时钟可以由下列时钟源提供 :

A、内部时钟(CK_INT)

B、外部时钟模式1:外部输入脚(TIx)

C、外部时钟模式2:外部触发输入(ETR)

D、内部触发输入(ITRx): 使用一个定时器作为另一个定时器的预分频器。

 

定时器中断模式基本开发流程(添加头文件"stm32f10x_tim.h","misc.h" – 中断配置)

l、使能定时器的时钟:

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,  ENABLE);

2、定时器初始化

   定时器的初始化主要用到 TIM_TimeBaseInitTypeDef 结构体。在该结构体中分别设置定时器结构体的预分频、计数初值、计数模式等。

   TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  /* 清空定时器中断标志 */

3、使能定时器

   TIM_Cmd(TIM3,ENABLE);

4、如果要使用中断模式,使能定时器中断

   TIM_ITConfig(TIM3,TIM_IT_Update, ENABLE);

   配置中断优先级, 跟前面的外部中断优先级配置类似,修改中断通道为定时器即可。在中断服务程序中务必首先清除中断标志。

源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: