STM32CUBEMX中TIM定时器的高效使用指南
一、什么是定时器
STM32的定时器(Timer)是其片上外设非常重要的一部分,广泛用于计时、产生精确延时,PWM输出,输入捕获,输出比较。编码器接口等功能。
在STM32中通常包含了以下几种类型的定时器:
基本定时器: TIM6,TIM7 仅具备计数功能,用于延时,DAC触发。
通用定时器: TIM2-TIM5,TIM9-TIM14 支持技术,输入捕获,输出比较,PWM,编码接口等。
高级定时器:TIM1,TIM8 功能最全,支持死区,互补PWM,适合电机控制。
二、定时器配置
首先我们需要打开STM32CubeMX软件,点击“新建工程”

选择我们的芯片,开始图形化配置。
首先我们配置晶振

接着我们打开我们的调试引脚。

接着选择我们的输出引脚。

接着我们配置我们的时钟频率,后面我们的定时器会用该时钟频率配置定时器

现在我们就可以进行中断定时器的配置,我们选择一个通用计时器。

我们将时钟源选择为内部时钟

选择了时钟源后,我们就要开始设置定时器。

其中:
Prtscaler (定时器预分频系数)
Counter Mode(计数模式) : Up(向上计数模式)
Counter Period(自动重装载值)
CKD(时钟分频因子) : No Division 不分频
auto-reload-preload(自动重装载) : Enable 使能
计算时间的公式就为
T = (psc+1)(arr+1)/Tclk;psc:定时器预分频系数、arr:自动重装载值、Tclk:系统时钟频率
我们就可以计算出我们需要的时间,

最后我们还需要启动中断设置。

配置完成后我们就可以进行Project Manager 的编辑。

每个外设生成独立的“.c/.h”文件。

最后点击创建代码。
我们首先找到我们的定时器初始化代码。
三、代码编写

我们转到定义里去看,可以发现,这里面进行了我们定时器的配置,

在stm32f1xx_it.c中,找到我们的定时器中断。

在后面我们就可以进行中断回调的编写了。

这样我们的中断回调函数就编写好了。
作者:三天原子