5、STM32 定时器的使用

    

    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);

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


源码下载


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值