欢迎来到 深圳市祥帆电子科技有限公司
全国咨询热线:020-123456789
9-玩转STM32之定时器系统
  来源:深圳市祥帆电子科技有限公司  更新时间:2024-05-12 22:50:38
9.1定时器系统简介

在所有的玩转定时器中,TIM1和TIM8的功能最多。通用和基本定时器在结构上都有一定的器系简化。所以本章就以高级定时器为例讲解:

9.1.1定时器概述

定时器在检测、玩转控制领域有广泛应用,器系可作为应用系统运行的玩转控制节拍,实现信号检测、器系控制、玩转输入信号周期测量或电机驱动等功能。器系在很多的玩转应用场合,都会用到定时器,器系因此定时器系统是玩转现在微控制器中的一个不可缺少的组成部分。
定时器有很多用途,器系包括基本定时功能、玩转生成输出波形(输出比较、器系PWM和带死区插入的玩转互补PWM)和测量输入信号的脉冲宽度(输入捕抓)等.
STM32F429共有14个定时器,包括2个高级定时器(TIMTIM8),10个通用定时器(TIMTIM9~以及2个基本定时器分别是TIM6和TIM7)。这里面2和5是32位定时器,,其他的都是16位的。具体可看下图:

9.1.2定时器结构


TIM1和TIM8结构如下图:

高级定时器内部结构图如下:

9.1.3时钟源

定时器计数需要计数器时钟,可由下列时钟源提供:
①内部时钟(CK_INT)源模式。
②外部时钟源模式1:外部输入引脚。
③外部时钟源模式2:外部触发输入ETR。
④编码器模式。
具体如下图结构:

定时器计数时钟源1.内部时钟源模式2.外部时钟源模式13.外部时钟源模式24.编码器模式

将TI1FP1和TI2FP2信号的电平状态的变化作为定时器时钟源。这一模式主要用于测量光电正交编码器输出脉冲数,以及测量电机转速和方向。

9.2基本定时功能9.2.1时基单元定时器时基单元9.2.2计数模式计数模式递增计数模式递减计数模式中央对齐计数模式(时钟分频因子=1ARR=6)9.3捕抓/比较功能

STM32F429微控制器的高级定时器和通用定时器中有输入捕抓通道和输出比较通道。

输入捕抓通道:

1)、频率测量、PWM信号周期、占空比测量,以及霍尔传感器输出信号测量等。
2)、测量光电正交编码器输出信号,实现电机转速的测量。

输出比较通道:

实现PWM信号输出、6步PWM信号生成,用于电机控制。

9.3.1输入捕抓/比较输出通道输入捕抓通道输出比较通道9.3.2输入捕抓模式


在使用输入捕抓通道当检测到TI1引脚上输入的信号出现上升沿时,将计数器的值捕抓到TIMx_CCR1中。具体操作步骤如下:

1.选择输入捕抓模式,IC1映射到TI1上
2.设定输入信号边沿检测的滤波功能(防抖动)
3.选择边沿触发方式
4.对输入预分频器进行编程
5.使能输入捕抓功能
6.设置捕抓中断和DMA请求

当连续两次捕抓同一输出信号的连续两个边沿跳变,两次得到的计数寄存器值分别为C1和C2(假设C1和C2计数期间没有溢出事件),那么这一输入信号的周期:

((CC1)/CK_CNT)/输入捕抓通道预分频系数。

PWM波的周期测量:9.3.3PWM输出模式比较模式:9.3.4编码器接口模式


在编码器模式下,计数器会根据增量编码器的速度和方向自动进行修改,因此计数器内容始终表示编码器的位置。计数方向对应于定时器所连传感器的轴旋转方向。
不同编码器模式下的计数方式如下图:

9.4定时器典型应用步骤及常用库函数9.4.1基本定时功能应用步骤

①使能定时器时钟。

RCC_APB1PeriphClockCmd();

②初始化定时器,配置ARR,PSC。

TIM_TimeBaseInit();

③开启定时器中断,选择中断请求事件并配置NVIC。

voidTIM_ITConfig(TIM_TypeDef*TIMx,uint16_tTIM_IT,FunctionalStateNewState);NVIC_Init();

④使能定时器。

TIM_Cmd();

⑤编写中断服务函数。

TIMx_IRQHandler();
9.4.2输入捕抓模式应用步骤

①使能定时器时钟和GPIO时钟
②初始化定时器输入捕抓通道引脚
③初始化定时器测量时钟
④设置输入捕抓通道
⑤选择定时器复位触发源
⑥开启定时器中断
⑦使能定时器
⑧编写中断服务函数

9.4.3PWM输出应用步骤

①使能定时器时钟
②初始化定时器比较输出通道引脚
③定义PWM波的周期
④设置比较输出通道
⑤使能定时器
⑥开启定时器中断

9.4.4编码器接口应用步骤

①使能定时器时钟
②初始化定时器编码器接口输入通道引脚
③定义编码器接口的计数值溢出值
④设置定时器编码器接口模式
⑤开启定时器中断
⑥使能定时器
⑦编写测量速度应用程序

9.4.5常用库函数9.5应用实例9.5.1定时器控制实现灯闪烁1.编程要点2.主程序3.定时器初始化函数定时器中断服务函数9.5.2直流电机调速控制1.编程要点2.主程序3.定时器输出PWM波初始化函数4.更改占空比5代码

Copyright © 2024 Powered by 深圳市祥帆电子科技有限公司   sitemap