找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2970|回复: 4
打印 上一主题 下一主题
收起左侧

关于stm32单片机中断void TIM4_IRQHandler(void)函数

[复制链接]
跳转到指定楼层
#
ID:962192 发表于 2021-9-2 09:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在每个外设的中断里都有一个中断函数比如void TIM4_IRQHandler(void)函数,当我们调用HAL_TIM_PWM_Start_IT(&htim4,TIM_CHANNEL_1)函数时会进入刚才写的中断函数里面,而在中断函数里面还有有一个HAL_TIM_IRQHandler(&htim4)函数,所以我想问如果将HAL_TIM_IRQHandler(&htim4)函数从void TIM4_IRQHandler(void)函数里面删除和不删除的区别在哪?望路过的道友们解答一下,万分感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

地板
ID:962192 发表于 2021-9-3 14:17 | 只看该作者
jizhongbiao 发表于 2021-9-3 11:42
你看一下那个回调函数的实现就知道了。自己写就好,hal为了可移植性做了很多冗余的判断。

嗯嗯,谢谢您。
回复

使用道具 举报

板凳
ID:130230 发表于 2021-9-3 11:42 | 只看该作者
你看一下那个回调函数的实现就知道了。自己写就好,hal为了可移植性做了很多冗余的判断。
回复

使用道具 举报

沙发
ID:962192 发表于 2021-9-3 10:37 | 只看该作者
sinside 发表于 2021-9-3 08:34
这是芯片的程序库帮你做好的结果. 如果你不用HAL库, 自己添加自己的中断处理程序, 当然可以删除.

之所 ...

受教了,谢谢您!
回复

使用道具 举报

楼主
ID:935919 发表于 2021-9-3 08:34 | 只看该作者
这是芯片的程序库帮你做好的结果. 如果你不用HAL库, 自己添加自己的中断处理程序, 当然可以删除.

之所以用 HAL_TIM_IRQHandler(&htim4), 因为这个一个通用函数, 大部分的中断处理都同样用此函数, 只是参数不一样而已. 如果你不用通用的处理, 当然页可以自己写.

自己写可能会节省一些存储空间, 但是会漏掉一些出错处理. 所以建议还是用库里面的函数.

另外, 如果通用的函数满足不了你的处理要求, 可以在HAL_TIM_IRQHandler(&htim4)之前, 之后加入你自己的处理代码.

注意观察TIM4_IRQHandler里面会有如下USER CODE的注释, 就是你可以在这些地方插入你的处理代码, 具体在之前还是之后取决你的需求.

/* USER CODE BEGIN TIM6_IRQn 0 */
  这里加入你的中断处理代码
  /* USER CODE END TIM6_IRQn 0 */
  HAL_TIM_IRQHandler(&htim6);
  /* USER CODE BEGIN TIM6_IRQn 1 */
这里也可以加入你的中断处理代码
  /* USER CODE END TIM6_IRQn 1 */
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表