0

我正在使用 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(在 stm32f2xx_pwr.h 中)。但是,通过这种安排,我无法与微控制器建立任何通信(SPI 或 USB)。

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

欢迎任何建设性的反馈。

4

1 回答 1

0

与此同时,我发现了应用笔记 AN3430 ( http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/DM00033348.pdf ),它在某种程度上更易于理解(只有 38 页),提供了一个很好的概述关于微控制器的节能。

由于我无法访问 PA0-WKUP(唤醒引脚),我不得不放弃使用待机。似乎在主循环中只是一个简单的睡眠模式 - 通过调用 __WMI(); - 在我的情况下应该足够降低电流消耗。如果睡眠模式不够,我可能会考虑停止模式,但我将阅读有关应用程序注释指向的 EXTI 寄存器配置的数据表片段。

于 2013-02-12T14:20:14.203 回答