节能模式STM32F205RG

节能模式STM32F205RG,stm32,iar,Stm32,Iar,我正在使用STM32F205RGT6 Cortex-M3微控制器,并使用IAR Embedded Workbench进行编码 我计划将微控制器大部分时间保持在省电模式,除非外部组件试图通过SPI(STM32微控制器是SP从机)或USB进行通信 一个外部组件通过SPI(PB12-15)连接,PC通过USB(PA11-12)连接。 通信工作正常-我已经测试了SPI和USB。 我想,一旦我设置好SPI和USB,我将调用一个省电函数,并在中断服务例程结束时添加相同的函数调用。我找到了我尝试使用的PWR_

我正在使用STM32F205RGT6 Cortex-M3微控制器,并使用IAR Embedded Workbench进行编码

我计划将微控制器大部分时间保持在省电模式,除非外部组件试图通过SPI(STM32微控制器是SP从机)或USB进行通信

一个外部组件通过SPI(PB12-15)连接,PC通过USB(PA11-12)连接。 通信工作正常-我已经测试了SPI和USB。 我想,一旦我设置好SPI和USB,我将调用一个省电函数,并在中断服务例程结束时添加相同的函数调用。我找到了我尝试使用的PWR_EnterSTANDBYMode和PWR_EnterSTOPMode(在stm32f2x_PWR.h中)。 然而,由于这种安排,我无法与微控制器建立任何通信(SPI或USB)

是否需要配置一些额外的东西(例如哪些引脚应该唤醒微控制器)? 我是否使用了错误的函数?还是错误的头文件? 你能给我举个类似的例子吗(我在ST的网站上找不到类似的东西)


欢迎任何建设性的反馈。

与此同时,我发现应用说明AN3430()更易于理解(只有38页),它提供了微控制器节能方面的极好概述

因为我没有访问PA0-WKUP(唤醒密码)的权限,所以我不得不放弃使用备用密码。似乎只是主循环中的一个简单睡眠模式-通过调用u WMI();-在我的情况下,应该足够降低电流消耗。如果睡眠模式不够,我可能会考虑停止模式,但我会阅读应用程序注意到的EXTI寄存器配置的数据表片段。