N32G031 LP RUN模式
今天在看N32G031用户手册低功耗章节的时候发现有一个LPRUN模式,让系统处于LSI或者LSE的低频工作状态,以此来减小功耗。然后深入了解发现LPRUN模式也有两种配置,一种是让flash处于正常工作状态,另一种是让Flash进入深度睡眠模式,这种状态下可以让功耗变得更低
为了验证用户手册这一说法,我配置好代码做了低功耗实验,代码配置如下:
flash正常工作状态:
Delay(200);
PWR_EnterLowPowerRunMode(PWR_LPRUN_EFLASH_ACTIVE,LSI); //选择LPRUN模式下flash功耗状态、时钟源LSI或LSE
Delay(1);
PWR_ExitLowPowerRunMode();
SetSysClockToPLL(48000000,SYSCLK_USE_HSI);flash深度睡眠模式
Delay(200);
PWR_EnterLowPowerRunMode(PWR_LPRUN_EFLASH_DEEEPSTANDBY,LSI);
Delay(1);
PWR_ExitLowPowerRunMode();
SetSysClockToPLL(48000000,SYSCLK_USE_HSI);
然后就发现一个很奇怪的现象,同样都是delay(1)之后离开低功耗,但是两者的时间却相差很大
发现问题了,仔细看了用户手册才知道,flash深度睡眠模式需要在代码在SRAM中运行时才可以配置,如果在flash中运行就不能配置,怪不得测试的时候发现两个模式功耗差不多,原来是没有配置成功
后续找了一下怎么让代码在SRAM中运行,发现了国民的一篇应用笔记,让代码在SRAM中运行
页:
[1]