我正在使用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&#39的网站上找不到类似的东西)吗?
欢迎任何建设性的反馈。
答案 0 :(得分:0)
与此同时,我发现应用笔记AN3430(http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/DM00033348.pdf)在某种程度上更容易消化(只有38页),可以很好地概述微控制器的省电。
由于我无法访问PA0-WKUP(唤醒引脚),因此我不得不放弃使用待机模式。似乎在主循环中只是一个简单的睡眠模式 - 通过调用__WMI(); - 在我的情况下应该降低电流消耗。如果睡眠模式不够,我可能会考虑停止模式,但是我会读取应用程序未指定的EXTI寄存器配置的数据表片段。