当前位置:   article > 正文

stm32定时器中断函数回调函数_stm32定时器中断回调函数

stm32定时器中断回调函数

方式一:stm32定时器中断可以直接在硬件中断函数TIM3_IRQHandler执行。

HAL'库中可以注册回调函数,在定时器中断发生时调用注册的函数,这样可以统一接口,大大提高函数可读性,和硬件解耦提高程序可移植性。

使用过程如下

启用中断

编辑源码程序,在stm32f4xx_hal_config.h文件中打开USE_HAL_TIM_REGISTER_CALLBACKS宏定义为1。

在主程序中并注册回调函数,开启定时器中断,注意要先初始定时器-》注册回调函数-》开启定时器中断

  1. /* 配置定时器中断回调函数*/
  2.     HAL_TIM_RegisterCallback(&htim3, HAL_TIM_PERIOD_ELAPSED_CB_ID, MotorTimerCallback);
  3. //回调函数定义
  4. void MotorTimerCallback(TIM_HandleTypeDef *htim)
  5. {
  6. //中断代码
  7. }
  8. //开启中断
  9. HAL_TIM_Base_Start_IT(&htim3);

运行过程分析。

启用USE_HAL_TIM_REGISTER_CALLBACKS宏定义之后,在中断发生时,首先会调用硬件中断函数TIM3_IRQHandler,这是由单片机芯片硬件设计决定的,再此函数中会调用 HAL_TIM_IRQHandler(&htim3);

在HAL_TIM_IRQHandler中会有一段代码,决定执行哪个回调函数,这部分是在编译时就确定的。

所以在注册回调函数时就给这个函数指针赋值即可

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/912921
推荐阅读
相关标签
  

闽ICP备14008679号