STM32F0在SPI接收中断时从STOP退出

时间:2017-02-21 08:21:36

标签: interrupt stm32 spi

我是否认为在SPI接收中断时无法从STOP模式退出,因为所有时钟都停止了?

2 个答案:

答案 0 :(得分:2)

是的,SPI在STOP模式下停止。

如果您的MCU是SPI从设备,并且您可以丢失第一个数据包,即如果主设备没有得到正确的答案,主设备将重新启动,那么您可以重新配置NSS引脚作为EXTI激活的下降沿,它甚至可以在STOP模式下工作。

答案 1 :(得分:2)

您是对的,SPI接收中断不能用于将控制器从STOP模式唤醒。

但是,在中断模式下配置的任何EXTI线都可以唤醒微控制器。 (表source

enter image description here

完整的EXTI行映射可以在参考手册,第176页中找到。从GPIO映射到EXTI0 - EXTI15。剩下的可用行如下:

  • EXTI第17行连接到RTC警报事件
  • EXTI第18行连接到内部USB唤醒事件
  • EXTI第19行连接到RTC Tamper和TimeStamp事件
  • EXTI第20行连接到RTC唤醒事件(仅适用于STM32F070xB和STM32F030xC设备)
  • EXTI第23行连接到内部I2C1唤醒事件

您可以做的是在相应SPI线的GPIO引脚上配置一个外部中断,唤醒控制器。之后,可以使用正确的SPI RX中断。请注意,您将丢失SPI上的早期数据,因为您只有GPIO中断,SPI外设将一直停止,直到唤醒。