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

2019-07-14 16:04发布

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中处理可以吗?他们有什么区别吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
TOPCB
1楼-- · 2019-07-14 19:51
可以,这个只是方便移植。比如从103移植到407。
lee_st
2楼-- · 2019-07-14 23:08
是的
dingyang598
3楼-- · 2019-07-14 23:42
其实ST是把中断处理的细节给封装了起来,回掉函数是暴露给开发者的接口函数,开发者只需要在回调函数中实现特定的功能即可。这样的好处是简化了开发过程(理论上是这样的,但是对于用惯了标准库的我来说,还是有些不适应,感觉都被束缚了,还是习惯自己动手实现中断过程)。同时也便于不同型号的MCU软件之间的移植。
吔屎蛋拉雷
4楼-- · 2019-07-15 05:17
这样 便于 移植,架构统一
tyewybvwe
5楼-- · 2019-07-15 08:43
 精彩回答 2  元偷偷看……
陈囝囝100
6楼-- · 2019-07-15 10:52

一周热门 更多>