zhang_mike2000 发表于 2016-11-10 13:28:14

HAL库中的中断,在callback回调函数和中断函数中处理有何区别

HAL库中的中断,在callback回调函数和中断函数中处理有何区别
比如定时中断
在it.c中的中断函数基本不处理内容
void TIM2_IRQHandler(void)
{
/* USER CODE BEGIN TIM2_IRQn 0 */

/* USER CODE END TIM2_IRQn 0 */
HAL_TIM_IRQHandler(&htim2);
/* USER CODE BEGIN TIM2_IRQn 1 */

/* USER CODE END TIM2_IRQn 1 */
}

真正的处理在
main.c中的
      void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
      {
                //if(htim == (&htim1))
                if(TIM1 == htim->Instance)
                {
                }

      }

如果闲callback麻烦,直接在.c中处理可以吗?他们有什么区别吗?

anobodykey 发表于 2016-11-10 13:48:01

没啥区别,HAL只是给你提供了一个基本框架,便于统一

发表于 2016-11-10 13:49:37

可以,这个只是方便移植。比如从103移植到407。

黑皮男 发表于 2016-11-10 15:21:56

其实ST是把中断处理的细节给封装了起来,回掉函数是暴露给开发者的接口函数,开发者只需要在回调函数中实现特定的功能即可。这样的好处是简化了开发过程:lol(理论上是这样的,但是对于用惯了标准库的我来说,还是有些不适应,感觉都被束缚了,还是习惯自己动手实现中断过程)。同时也便于不同型号的MCU软件之间的移植。

jtc_88 发表于 2016-11-10 15:23:11

这样 便于 移植,架构统一

高二毛 发表于 2016-11-10 17:25:08

学习。。。。

asssdz-382474 发表于 2016-11-10 17:47:24

:):):):):):):)

zengyi703-16313 发表于 2016-11-11 08:09:51

原来是这样的

那片清茶 发表于 2016-11-11 09:09:04

为了方便移植。

frankstm32f 发表于 2018-9-7 10:34:12

請問如過是使用callback回調函數,還需要清中斷嗎?
页: [1]
查看完整版本: HAL库中的中断,在callback回调函数和中断函数中处理有何区别