HAL库之STM32F411定时器TIM1更新中断

2025-11-07 08:20:56

1、打开STM32CubeMX,点击New Project开始生产一个新的项目。

HAL库之STM32F411定时器TIM1更新中断

2、找到STM32F411RE芯片,双击它。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

1、进入Project,选择最上面的“Pin”项目,将左边的TIM1展开,点击Clock Source右侧的箭头,选择内部时钟(Internal RC),是能TIM1。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

2、切换到Clock Configuration,可以看到时钟树,我这里选择内部时钟,不分频,即定时器时钟就是外部晶振时钟,我这个时16M。灰色部分都是无效的。

HAL库之STM32F411定时器TIM1更新中断

3、切换到Configuration,可以看到已经使能的外设,双击TIM1。

HAL库之STM32F411定时器TIM1更新中断

4、按需求配置好TIM1 Configuration,点击“Parameter Settings”,按途中配置设置好。

Counter Settings的Prescaler为分配,因为输入时钟时16M的,选择16分配就可以产生1微秒的定时器时钟。

Counter Mode选择Up

Counter Period就是定时器的计数周期,选择10000,注意这个数其实保存再一个16位寄存器当中,最大只能是65535

Repetition Counter设置重复次数,99会重复100次。

这样定时器计数10000*100次便会进入定时器中断,也就是1s。

HAL库之STM32F411定时器TIM1更新中断

5、切换到“NVIC Settings”,打开TIM1 update interrupt and TIM10 global interrupt打开TIM1的NVIC。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

1、点击菜单栏的“Project”->“Generate Code”。

HAL库之STM32F411定时器TIM1更新中断

2、设置好工程名称、目录,以及开发环境,这选择Keil5即MDK-ARM V5,确认后点击Ok。

HAL库之STM32F411定时器TIM1更新中断

3、耐心等待代码生产完毕。

HAL库之STM32F411定时器TIM1更新中断

4、代码生产成功后弹出如下对话框,选择“Open Project”打开工程。

HAL库之STM32F411定时器TIM1更新中断

1、STM32CubeMX生产的代码还需要经过一番加工,自动生成的知识使能了NVIC但是并没有配置好对应的中断,所以还需要添加一段小代码。

打开工程后,切换到main.c的“static void MX_TIM1_Init(void)”

HAL库之STM32F411定时器TIM1更新中断

2、添加HAL_TIM_Base_Start_IT(&htim1);使能TIM1中断。

HAL库之STM32F411定时器TIM1更新中断

3、在TIM1的中断函数设置好断点,这样调试的时候就可以知道是否进入了这个中断函数。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

4、编译并进入调试模式。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

5、运行调试,可以看到进入到了TIM1中断。

HAL库之STM32F411定时器TIM1更新中断

HAL库之STM32F411定时器TIM1更新中断

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢