从中断中断函数执行

时间:2015-04-01 14:04:57

标签: stm32

我为stm32编写固件。函数a()在主循环中执行。如果发生uart中断,我需要打破这个功能的执行!可能吗?感谢)

1 个答案:

答案 0 :(得分:1)

当然你可以做到。规范方法是创建可在IRQ和volatile方法范围内访问的a() 标志变量。将其初始化为false

当你的IRQ方法想要告诉你的a()方法做某事时,它会将标志设置为true。在您的a()方法中,您经常轮询该标志,如果它是真的,那么您就采取行动。

你问这个事实让我觉得你可能正在a()的某个地方进行阻塞调用,你希望它能以某种方式被中断代码强行解锁。那是不可能的。如果您的代码是这样的,那么您需要将其重新设计为非阻塞。