通过CUBEMX来配置TIM定时器中断

CubeMX配置

首先是时钟的配置,这里选择外部晶振

QQ20210207005753.png

然后是系统,要选择Debug形式,然后时钟源这里选择系统的滴答定时器

QQ20210207005800.png

之后是TIM定时器的时钟源选择,这里就先选择内部时钟源,通道的话不用打开

QQ20210207005817.png

之后配置分频系数,计数模式与计时周期.这里的一次计时周期就是1ms

QQ20210207005841.png

为TIM2配置中断是否开启以及它的优先级

QQ20210207005854.png

在内核配置中可以配置中断优先级的分组,这里就选择第四组了,在这里也可以看到全部的中断源配置

QQ20210207005909.png

之后是时钟树的配置,需要注意的是外部时钟源需要与板子实际使用的一致,其他的如果没有需求就不用管了,然后HCLK处我习惯100MHz直接傻瓜式配置,系统会自动帮你计算

QQ20210207005947.png

之后配置好相关文件路径就可以生成代码了

一些相关的函数

一进入主函数,首先需要用

HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)

来开启TIM2的中断。参数就是中断源的句柄,可以在tim.c文件中看到

QQ20210207010946.png

之后在stm32f4xx_it.c文件下会看到自动生成了TIM2的中断处理函数

QQ20210207011003.png

需要注意的是在HAL库中,每进行完一个中断,并不会立刻退出,而是会进入到中断回调函数中

所以我们需要在tim.c文件下自己创建一个TIM2相关的中断回调函数

在中断回调函数中就可以添加用户自己相应的代码了

QQ20210207011015.png