历史上的今天
今天是:2025年07月08日(星期二)
2019年07月08日 | 工作问题笔记-----STM32休眠问题
2019-07-08 来源:eefocus
STM32低功耗分三种:
SLEEP: 电压调节器开启,Cortex-M3内核停止运行,外设保持运行态;
STOP: 电压调节器可选择性开启,所有外设时钟、PLL、HSI和HSE被关闭,Cortex-M3内核和所有外设停止运行,保留SRAM和寄存器的内容;
STANDBY: 待机模式Standby:电压调节器关闭、整个1.8v区域断电。除了备份区域和待机电路的寄存器以外,SRAM和寄存器的内容全部丢失。
在休眠状态下,MCU的代码并不会继续执行,而是进入休眠状态,等待唤醒,唤醒的过程会先执行IRQ中断服务函数,然后再执行WFI后的函数。
省电级别由低到高,standby休眠后会让我们的数据丢失,而SLEEP会被所有的中断唤醒,且省电级别并没有STOP高,STOP只能被所有的外部中断EXIT LINE唤醒,符合我们的ACC唤醒规则需求。因为STOP休眠状态下时钟、PLL、HSI、HSE等都会被关闭,因此,唤醒之后,需要重新对RCC进行配置,以保持MCU唤醒后外设的正常运行,因此,需要时钟的情况下STM32的休眠模式应该选用SLEEP而不是STOP,本人目前的需要是STOP休眠状态。一般情况下,为了更加省电,在允许的情况下,MCU休眠后,最好把GPIO口都断开,即DeInit。
PS:经过实践结果 发现103和030 两种STM32的型号在STOP模式下的唤醒有所区别 当103在STOP休眠时会被系统时钟中断唤醒,所以103在休眠前应当关闭系统时钟中断,而030却没有这个现象。
对比三种休眠模式的进入函数
值得注意的是,默认情况_WFI()可以让MCU进入SLEEP模式,但是,PWR_EnterSTOPMode函数会改变SCB_SysCtrl的SleepDeep位,因此如果是调用了PWR_EnterSTOPMode后,再用_WFI()的话,进入的并不是SLEEP模式,而是STOP模式。(此点由http://bbs.21ic.com/icview-136301-1-1.html处学习)
下一篇:stm32f4 SD卡调试日志
史海拾趣
|
1.一般玩的时候多大的带宽够用 2.大家多少时候一定要用双通道? ---------- 在TI网上申请了几个样片,想做一个简单的示波器玩玩。 单通道,80M采样,10M的带宽,受模拟放大器性能所限,运放的带宽是15M。 2寸彩色LCD显示,220*176点,虽然小 ...… 查看全部问答> |
|
系统设计原则 ü 实用性原则 总体设计:在系统设计的过程中,方案不仅综合考虑了小区内需要被集成的所有弱电子系统资源的充分利用与共享等实际情况,以及集成后智能化集成系统的实用性和在一段时间内先进型的问题,还着眼于未来,也即随着社会发 ...… 查看全部问答> |
|
STM32数据手册中,所提到兼容5V IO,是可以直接5V低内阻电源的,不知道我这样理解对不对。 那么对于非兼容5V IO 我在设计时连接了5V,不过都是OC信号输入加上拉4.7K电阻到5V,不知道这样应用不知道是否有问题。只要保证STM32每个IO口都连接钳位 ...… 查看全部问答> |
|
最近想用STM32对脉冲计数 参考了前辈的一些经验 自己却弄不对,惭愧啊 请大侠点拨下 很着急 TIM_TimeBaseStructure.TIM_Period = 0x0400; TIM_TimeBaseStructure.TIM_Prescaler = 0x00; TIM_TimeBaseStructure.TIM_ClockDivision = 0 ...… 查看全部问答> |
|
自己作了一块5409的板子,和仿真器(XDS510PP)联不上,好伤心啊。。。。 提示检查目标板电源和JTAG连接。 仿真器和5402DSK相连,没问题。 自己做的板 ...… 查看全部问答> |




