粗谈 STM32 HAL库的中断

本文基于本人在STM32F4使用上的理解,若有不正确的地方请留言!
用过STM32 STD标准库的人都应该知道 当硬件中断来临时, 比如TIM3的溢出中断,其步骤程序首先进入void TIM3_IRQHandler(void)的中断服务函数,但是触发TIM3中断的情况有很多种,如图1 有更新中断标志,捕获中断标志等等,因此进入中断服务函数后,得判断中断标志位是否置位,再写用户的应用程序,当退出中断时得将中断标志位复位,否则会无限进入该中断函数,图二为中断函数配置
图一:定时器中断标志位图二 定时器3中断函数配置
但是在HAL库中,HAL库中相当于对标准库函数的再一次封装,使得使用更加的方便,方便移植,但是缺点是影响性能,
在这里插入图片描述
如上图是HAL库中当中断来临时的标准配置过程,当中断来临时,首先由硬件进入void TIM5_IRQHandler(void)的中断函数,该中断函数内运行的是 HAL_TIM_IRQHandler(&htimx_Encoder),该函数判断每个中断标志位是否置位,比如当触发输入捕获中断 会调用void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) 函数,中断标志会在 HAL_TIM_IRQHandler(&htimx_Encoder)函数判断完之后复位,
在这里插入图片描述
TIM_HandleTypeDef结构体描述了当前活动的定时器号,活动的通道等等状态。

因此在HAL库中,中断函数执行了过多的程序,影响单片机的性能,最好在中断内用寄存器操作,为了能尽快退出中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值