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

关于中断标志的疑惑

[复制链接]
正在学习STM32的ikun 提问时间:2024-3-26 15:56 / 已解决

对于中断,先执行中断服务函数还是先清理中断标志? 开始学习固件库的时候,差不多是先进入服务函数在清理中断标志。 最近在用CubeMX,是先清理中断标志再进入回调函数。 想请教一个哪一个好

void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
  /* EXTI line interrupt detected */
  if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    HAL_GPIO_EXTI_Callback(GPIO_Pin);
  }
}
收藏 评论2 发布时间:2024-3-26 15:56

举报

2个回答
xmshao 回答时间:2024-3-26 17:10:11
一般来讲,这个没有特定顺序要求。


唯一要注意的是,最好不要将中断请求标志放在中断程序退出前的最后一句,


避免同一中断事件再来一次。
butterflyspring 回答时间:2024-3-26 17:01:38
这个没有绝对的标准。

1. Cube库函数已经包含了标志判断和清除,不需要用户自己操作了。

2. 用户需要关注中断发生的频率和中断执行时间的匹配就好了。
    从逻辑上讲,清除就完成本次中断任务了。剩下的只是响应速度够不够的问题。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版