触发中断后不能返回主函数,主函数卡在被中断的地方,但是中断还可以被正常触发,嵌套中断也会令上一级中断和主函数卡在被中断的地方。


触发中断后不能返回主函数,主函数卡在被中断的地方,但是中断还可以被正常触发,嵌套中断也会令上一级中断和主函数卡在被中断的地方。


以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据你提供的代码片段,我们可以从以下几个方面来分析和解决STM32中断处理后无法返回主函数的问题:
中断初始化和配置:
NVIC_Init和EXTI_Init函数的配置是否正确。确保中断通道被正确初始化,优先级设置合理,并且中断触发模式(上升沿触发、下降沿触发等)符合预期。GPIO操作:
中断服务函数(ISR):
EXTI9_5_IRQHandler和EXTI3_IRQHandler函数中的逻辑。确保在中断处理完成后,有适当的代码来恢复主函数的执行。中断标志清除:
EXTI_ClearITPendingBit来清除中断标志。这是必须的步骤,以确保中断可以被再次触发。避免无限循环或阻塞操作:
主函数的阻塞:
中断优先级:
硬件问题:
固件问题:
调试:
针对你的问题,以下是一些可能的解决方案:
EXTI_ClearITPendingBit在每个中断服务函数的末尾被调用。如果你需要更具体的帮助,可以提供更详细的代码或错误信息。同时,我可以提供一些参考链接,帮助你进一步了解STM32中断处理和相关配置:
请注意,以上链接可能需要根据你的具体情况进行调整,以确保它们指向正确的资源。