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);
配置中断优先级, 跟前面的外部中断优先级配置类似,修改中断通道为定时器即可。在中断服务程序中务必首先清除中断标志。
源码下载
相关文章推荐
- 使用STM32的定时器进行输入脉冲的计数
- 使用STM32的systick定时器中断实现RTC工作过程出错
- 使用STM32的单个普通定时器产生4路不同频率的方波
- 使用STM32定时器输出任意相位差的方波
- STM32高分辨率定时器(HRTIM)使用笔…
- 使用STM32定时器生成类光电编码器ABZ相脉冲
- STM32上使用UCOSII--软件定时器和任务延时
- 关于STM32定时器1的使用
- STM32 定时器使用相关博文
- 【应用】使用STM32单片机定时器的Encoder模式驱动数字旋转编码开关
- 关于STM32定时器使用的一个注意事项(以此为前车之鉴,重要!)
- STM32上使用UCOSII--软件定时器和任务延时
- stm32的定时器使用方法
- STM32高分辨率定时器(HRTIM)使用实例之PWM
- STM32L152 基本定时器使用学习
- STM32使用定时器实现输入捕获
- 【WCE】使用 8253 定时器蜂鸣 (CEPC BSP)
- 第七课 如何在Excel里使用定时器
- 定时器的使用
- linux下定时器的使用