STM8L051 低功耗模式测试文档 STM8L051 的五种低功耗模式 wait ,low power run mode,low power wait mode,Ative-Halt mode,Halt mode。1、WAIT mode 在等待模式,CPU 的时钟是停止的,被选择的外设继续运行。WAIT mode 分为两种方式:WFE,WFI。WFE 是等待事件发生,才从等待模式中唤醒。WFI 是等待中断发生,才从等待模式中唤醒。2、low power run mode 在低功耗运行模式下,CPU 和被选择的外设在工作,程序执行在 LSI 或者 LSE 下,从RAM 中执行程序,Flash 和 EEPROM 都要停止运行。电压被配置成 Ultra Low Power 模式。进入此模式可以通过软件配置,退出此模式可以软件配置或者是复位。3、low power wait mode 这种模式进入是在 low power run mode 下,执行 wfe。在此模式下 CPU 时钟会被停止,其他的外设运行情况和 low power run mode 类似。在此模式下可以被内部或外部事件、中断和复位唤醒。当被事件唤醒后,系统恢复到 low power run mode。4、Active-Halt mode 在此模式下,除了 RTC 外,CPU 和其他外设的时钟被停止。系统唤醒是通过 RTC 中断、外部中断或是复位。5、Halt mode 在此模式下,CPU 和外设的时钟都被停止。系统唤醒是通过外部中断或复位。关闭内部的参考电压可以进一步降低功耗。通过配置 ULP 位和 FWU 位,也可以 6us 的快速唤醒,不用等待内部的参考电压启动。一、各个低功耗模式的代码实现 1、 WAIT mode 等待模式分为两种:WFI 和 WFE。 1.1 WFI mode 当执行“wfi”语句时,系统就进入 WFI 模式,当中断发生时,CPU 被从 WFI 模式唤醒,执行中断服务程序和继续向下执行程序。通过置位 CFG_GCR 的 AL 位,使主程序服务完中断服务程序后,重新返回到 WFI 模式。程序如下:void Mcuwfi(){ PWR_UltraLowPowerCmd(ENABLE); //开启电源的低功耗模式 CLK_HSEConfig(CLK_HSE_OFF); //关闭 HSE 时钟 (16MHz) #ifdef USE_LSE CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSE); CLK_SYSCLKSourceSwitchCmd(ENABLE); while (((CLK->SWCR)& 0x01)==0x01); CLK_HSICmd(DISABLE); #else CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI); CLK_SYSCLKSourceSwitchCmd(ENABLE); while (((CLK->SWCR)& 0x01)==0x01); CLK_HSICmd(DISABLE); #endif //切换时钟到 LSI...