1.定时器介绍
STM32中的定时器根据其功能复杂程度,可以分为基础定时器(Basic Timers)、通用定时器(General-Purpose Timers)和高级定时器(Advanced-Control Timers)。以下是这三种定时器的主要功能概述:
1. 基础定时器(Basic Timers)
主要功能:
- 基本计时:基础定时器具有较为简单的功能,通常用于基本的计时和触发任务。
- 触发输出:能够触发输出,直接驱动DAC(数字到模拟转换器)。
使用场景:
- 定时任务
- 驱动DAC
特点:
- 通常只有两个定时器(如STM32F4系列中的TIM6和TIM7)。
- 只支持向上计数模式。
- 只支持内部时钟源。
2. 通用定时器(General-Purpose Timers)
主要功能:
- 基本计时:包含基础定时器的所有功能。
- PWM生成:能够生成PWM(脉冲宽度调制)波形,用于电机控制等场景。
- 脉冲计数:能够计数外部脉冲,用于频率测量等。
- 输入捕获:捕获外部信号的边沿变化,用于测量外部信号的频率或脉宽。
- 输出比较:将计数器值与预设值进行比较,并根据比较结果控制输出。
使用场景:
- PWM控制
- 频率测量
- 脉冲计数
- 输入信号捕获
特点:
- 通用定时器数量较多(如STM32F4系列中有10个)。
- 支持向上计数、向下计数和中央对齐计数模式。
- 支持内外部时钟源。
3. 高级定时器(Advanced-Control Timers)
主要功能:
- 通用定时器的所有功能:包括PWM生成、脉冲计数、输入捕获、输出比较等。
- 特殊功能:
- 相位锁定回路(PLL):支持相位锁定回路,用于时钟同步。
- 编码器接口:支持编码器接口,用于读取编码器的位置信息。
- 三角波生成:能够生成三角波等复杂波形。
- 重复计数器:用于在计数器溢出时重复计数,延长定时时间。
- 死区生成:在PWM输出时生成死区时间,防止互补输出同时导通导致短路。
- 互补输出:支持互补输出,用于驱动三相无刷电机等需要互补信号的负载。
- 刹车输入:支持刹车输入,用于在紧急情况下切断电机输出。
使用场景:
- 音频处理
- 高级电机控制
- 编码器接口
特点:
- 高级定时器数量较少(如STM32F4系列中有2个,TIM1和TIM8)。
- 功能最为强大,适用于需要复杂定时和控制的应用场景。
在我学习的f1(f103)系列中,有基础定时器2个(TIME6、TIME7),通用定时器4个(TIME 2-5),高级定时器2个(TIME1、TIME8)。
综上所述,STM32中的定时器根据功能复杂程度划分为基础定时器、通用定时器和高级定时器,每种定时器都有其特定的功能和适用场景。在实际应用中,可以根据具体需求选择合适的定时器类型。
4.通用计时器结构框图
APB1总线不倍频是36MHZ,APB2是72MHZ
基本定时器和通用定时间的来源都是APB1,不过要倍频成72MHZ,而高级定时器来自APB2,直接是72MHZ。
2.通用计时器配置步骤
TIM_Presaler 预分频寄存器
TIM_CounterMode 计数器模式 向上计数、向下计数、中心对称计算(向上向下计数)
TIM_Period 自动重载值
TIM_ClockDivision 时钟分频影子 通常设置成1,不分频
TIM_RepetitionCounter 重复计时器,用在高级定时器上的(8位)
1Khz等于1ms 2Khz=0.5ms 时间是频率的倒数 1S=1000ms
3.实验功能
定时器初始化
未完待续:
标签:输出,功能,定时器,TIM,中断,STM32,计数,Timers From: https://blog.csdn.net/qq_53124654/article/details/140516548