stm32f103c8t6 - 禁用除一个中断之外的所有中断 - 时序关键,但可中断操作

stm32f103c8t6 - Disable all interrupts except one - Timing critical, but interruptable operation

我正在尝试为 stm32f103c8t6 微控制器编写一些代码。它不断地与设备通信,这需要禁用中断......但是,这也需要由某个 GPIO 引脚的下降沿立即中断。

在不禁用中断的情况下,通信偶尔会失败,偶尔会延迟约45个时钟周期。通过设置 CPSR 寄存器的 I 位禁用所有中断完全解决了这个问题,让我认为这是一个中断问题......但是,我的 GPIO 中断不起作用,所以这不是解决方案。

我已经尝试清除 NVIC 中的所有启用位,但用于我的 GPIO 中断的启用位除外,但问题仍然存在。

是否有任何 NVIC 未处理的中断可能会导致问题?或者有没有人有任何其他想法?任何帮助或想法将不胜感激!谢谢。

使用优先级分组 - 您将禁用优先级低于您设置的中断。