定时器的使用
STM32F407定时器资源包含:2个基本定时器(TIM6、TIM7);10个通用定时器(TIM2~TIM5、 TIM9~TIM14)、2个高级控制定时器(TIM1、TIM8)。
三种定时器的区别
| 定时器类型 |
区别 |
| 基本定时器 |
用于实现简单的定时功能,没有外部IO输入,属于内部资源 |
| 通用定时器 |
除了基本的定时功能外,还支持输入捕获、输出比较、PWM生成等多种功能 |
| 高级定时器 |
全面功能:包含基本定时器和通用定时器的所有功能,并具备特殊功能和高精度控制,如死区时间控制、刹车功能、霍尔传感器接口等,特别适用于电机控制等复杂应用场景。 |
| 定时器类型 |
定时器 |
计数位数 |
计数模式 |
预分频系数 |
产生DMA请求 |
捕获/比较通道 |
互补输出 |
接口最大时钟 |
定时器最大时钟 |
| 基本定时器 |
TIM6 |
16 |
递增 |
1~65536 |
可以 |
0 |
无 |
42MHz |
84MHz |
| 基本定时器 |
TIM7 |
16 |
递增 |
1~65536 |
可以 |
0 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM2 |
32 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM5 |
32 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM3 |
16 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM4 |
16 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM9 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
2 |
无 |
84MHz |
168MHz |
| 通用定时器 |
TIM10 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
1 |
无 |
84MHz |
168MHz |
| 通用定时器 |
TIM11 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
1 |
无 |
84MHz |
168MHz |
| 通用定时器 |
TIM12 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
2 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM13 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
1 |
无 |
42MHz |
84MHz |
| 通用定时器 |
TIM14 |
16 |
递增、递减、中央对齐 |
1~65536 |
不可以 |
1 |
无 |
42MHz |
84MHz |
| 高级定时器 |
TIM1 |
16 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
有 |
84MHz |
168MHz |
| 高级定时器 |
TIM8 |
16 |
递增、递减、中央对齐 |
1~65536 |
可以 |
4 |
有 |
84MHz |
168MHz |
常用函数
| 函数名 |
作用 |
| HAL_TIM_Base_Init |
用于初始化定时器 |
| HAL_TIM_Base_Start_IT |
用于更新定时器中断和使能定时器 |
HAL_TIM_Base_Init 介绍
函数原型:HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
函数形参:TIM_HandleTypeDef该结构体定义如下:
typedef struct<