我为stm32编写固件。函数a()在主循环中执行。如果发生uart中断,我需要打破这个功能的执行!可能吗?感谢)
答案 0 :(得分:1)
当然你可以做到。规范方法是创建可在IRQ和volatile
方法范围内访问的a()
标志变量。将其初始化为false
。
当你的IRQ方法想要告诉你的a()
方法做某事时,它会将标志设置为true。在您的a()
方法中,您经常轮询该标志,如果它是真的,那么您就采取行动。
你问这个事实让我觉得你可能正在a()
的某个地方进行阻塞调用,你希望它能以某种方式被中断代码强行解锁。那是不可能的。如果您的代码是这样的,那么您需要将其重新设计为非阻塞。