你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
zhang_mike2000 提问时间:2016-11-10 13:28 /
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中处理可以吗?他们有什么区别吗?
收藏 2 评论9 发布时间:2016-11-10 13:28

举报

9个回答
anobodykey 回答时间:2016-11-10 13:48:01
没啥区别,HAL只是给你提供了一个基本框架,便于统一
废鱼 回答时间:2016-11-10 13:49:37
可以,这个只是方便移植。比如从103移植到407。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

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

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

jtc_88 回答时间:2016-11-10 15:23:11
这样 便于 移植,架构统一

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

高二毛 回答时间:2016-11-10 17:25:08
学习。。。。
assssdz 回答时间: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回調函數,還需要清中斷嗎?

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版