打印
[STM32L1]

LowPowerRunMode退出的疑问?

[复制链接]
1617|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Xflyan|  楼主 | 2015-10-30 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在使用STM32L151RC做低功耗方案,要使用到 LowPowerRunModeSram(),官方参考代码
STM32L1xx_StdPeriph_Lib_V1.3.1中 Examples PWR CurrentConsumption
__ramfunc void LowPowerRunModeSRAM_Measure(void)
{
    /* This function should be called when the program is running from internal SRAM. */
    FLASH_RUNPowerDownCmd(ENABLE);

    /* Wait Until Key button pressed */
    /// 原 while(((*(__IO uint32_t *)0x40020010) & 0x0001) == 0)  对应 PA.00
    /// 改 PC.13 接按键
    while(((*(__IO uint32_t *)0x40020810) & 0x2000) != 0)
    { }

    /* Wait Until Key button pressed */
    /// 原 while(((*(__IO uint32_t *)0x40020010) & 0x0001) != 0)
    /// 改 PC.13
    while(((*(__IO uint32_t *)0x40020810) & 0x2000) != 0)
    {}

    /* This function should be called when the program is running from internal SRAM. */
    FLASH_RUNPowerDownCmd(DISABLE);  
}


在执行这个函数前,是把所有GPIO时钟都关掉了的,有谁测试过这个真能唤醒退出么?
我把原代码中的PA.00唤醒,改成PC.13,发现如果把GPIOC的时钟关掉,是无法通过按键退出的。
GPIO时钟关掉后,GPIO->IDR 还能正常反应IO上的信号变化么?如果不能,参考代码为什么这么写?
沙发
米霍克| | 2015-10-30 15:53 | 只看该作者
系统的PA0是WKUP脚,可以从待机模式退出,而PC13只能退出停止和睡眠模式

使用特权

评论回复
板凳
Xflyan|  楼主 | 2015-10-30 16:11 | 只看该作者
米霍克 发表于 2015-10-30 15:53
系统的PA0是WKUP脚,可以从待机模式退出,而PC13只能退出停止和睡眠模式

唤醒功能PA0和PC13是等效的,看你选哪个
PA0是WKUP1,PC13是WKUP2,两个都可以从待机唤醒的,试过了
现在是没有进入待机,在LowPowerRun下CPU和外设是工作状态的,所以不能用唤醒模式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

305

帖子

2

粉丝