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中处理可以吗?他们有什么区别吗? 没啥区别,HAL只是给你提供了一个基本框架,便于统一 可以,这个只是方便移植。比如从103移植到407。 其实ST是把中断处理的细节给封装了起来,回掉函数是暴露给开发者的接口函数,开发者只需要在回调函数中实现特定的功能即可。这样的好处是简化了开发过程:lol(理论上是这样的,但是对于用惯了标准库的我来说,还是有些不适应,感觉都被束缚了,还是习惯自己动手实现中断过程)。同时也便于不同型号的MCU软件之间的移植。 这样 便于 移植,架构统一 学习。。。。 :):):):):):):) 原来是这样的 为了方便移植。 請問如過是使用callback回調函數,還需要清中斷嗎?
页:
[1]