记一次 stm32f407 无法进入 standby 问题
通过查看当前中断信息,发现是 systick 中断pending未处理导致进入standby 模式的 WFI 失败,所以需要在执行 WFI 之前清除 systick 中断pending标志.
查看<Cortex M3与M4权威指南>如下:
可知ICSR寄存器的bit 26表示systick中断是否pending,写bit 25可以清除systick中断pending,bit 22表示是否有片内外设中断在pending等。
所以在执行WFI之前 调用 SCB->ICSR |= SCB_ICSR_PENDSTCLR_Msk;
即可清除systick中断pending标志
参考
STM32查看当前中断信息的方法