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

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
一路生花

一路生花

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
4 回答

STM32cubeIDE PA0口外部中断改变LED灯状态时,GPIO翻转函数放在外部中断回调函数中不被调用,放在EXTI0_IRQHandl函数才起作用

STM32CubeIDE
xu@xupt xu@xupt 回答时间: 2023-10-30 21:42

在STM32CubeIDE中,当使用外部中断时,通常需要在外部中断回调函数(例如HAL_GPIO_EXTI_Callback)中处理中断事件。在这个回调函数中,您可以执行一些操作,例如GPIO翻转函数来改变LED的状态。 但是,有时候在回调函数中执行GPIO翻转函数可能不起作用,这可能是因为回调函数的执行时间过长或者优先级不正确导致的。在这种情况下,您可以考虑将GPIO翻转函数放在EXTI0_IRQHandler函数中,该函数是外部中断的实际中断处理函数。 EXTI0_IRQHandler函数是由STM32CubeIDE自动生成的,用于处理外部中断0的中断事件。在这个函数中,您可以直接调用GPIO翻转函数来改变LED的状态。这样,当外部中断0发生时,中断处理函数会立即执行GPIO翻转操作,而不需要等待回调函数的执行。 需要注意的是,将GPIO翻转函数放在EXTI0_IRQHandler函数中可能会导致中断处理时间变长,因此需要根据具体应用场景进行评估。如果中断处理时间过长,可能会影响其他的中断响应或系统性能。 总结起来,如果在外部中断回调函数中执行GPIO翻转函数不起作用,您可以尝试将它放在EXTI0_IRQHandler函数中。但请注意评估中断处理时间和系统性能的影响。

赞0
一路生花 一路生花


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16