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

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中处理可以吗?他们有什么区别吗?
收藏 1 评论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
学习。。。。
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回調函數,還需要清中斷嗎?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版