你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L151 STOP模式唤醒程序跑哪儿了

[复制链接]
labi41 提问时间:2014-2-24 16:23 /
 我现在使用STM32L151进入STOP模式,测试程序运行后电流72uA,按钮按下后电流为331uA,LED灯也不闪烁。按钮松开后电流有变为0.5uA。

好像没有从STOP模式唤醒,理论上唤醒后应该在while(1)的循环里面灯闪烁。

希望使用过这个模式的人指点一下,谢谢!

void LEDInit(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  
  /* Enable the GPIO_LED Clock */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

  /* Configure the GPIO_LED pin */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
        
        GPIOB->BSRRL= GPIO_Pin_4;
}

int main(void)
{
        uint16_t i=0,j=0;

    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOC 

                        | RCC_AHBPeriph_GPIOD | RCC_AHBPeriph_GPIOE | RCC_AHBPeriph_GPIOH, ENABLE);

    /* config all IO to Analog Input to reduce parasite power consumption */

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_400KHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_Init(GPIOD, &GPIO_InitStructure);

    GPIO_Init(GPIOE, &GPIO_InitStructure);

    GPIO_Init(GPIOH, &GPIO_InitStructure);

    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_Init(GPIOB, &GPIO_InitStructure);  

    /* Enable PB7 as external PVD input so as to set it as AIN_IN */
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

 /* Configure the PVD Level to 3 (2.5V) */
   PWR_PVDLevelConfig(PWR_PVDLevel_7);

   /* Enable the PVD Output */
   PWR_PVDCmd(ENABLE);  

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA 
                          | RCC_AHBPeriph_GPIOB 
                          | RCC_AHBPeriph_GPIOC 
                          | RCC_AHBPeriph_GPIOD 
                          | RCC_AHBPeriph_GPIOE 
                          | RCC_AHBPeriph_GPIOH, DISABLE);
    
                LEDInit();
                
                /* Enable WKUP pin 1 */
    PWR_WakeUpPinCmd(PWR_WakeUpPin_1, ENABLE);          
                
    /* Clear WakeUp flag */
    PWR_ClearFlag(PWR_FLAG_WU); 


     PWR_UltraLowPowerCmd(ENABLE);
     PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
    while(1)
                {
                        LEDInit();
<span style="color: rgb(68, 68, 68); font-family: Tahoma, Helvetica, SimSun, sans-serif; font-size: 11.818181991577148px; line-height: 16.363636016845703px; background-color: rgb(238, 238, 238);">                        for(i=0;i
收藏 评论7 发布时间:2014-2-24 16:23

举报

7个回答
labi41 回答时间:2014-2-24 22:35:53

RE:STM32L151 STOP模式唤醒程序跑哪儿了



请指教!!??
fengye5340 回答时间:2014-2-25 09:17:28

回复:STM32L151 STOP模式唤醒程序跑哪儿了

回复第 2 楼 于2014-02-24 22:35:53发表:


请指教!!?? 

没看到你程序中有外部中断的配置,停止模式下需要一个外部总断去唤醒
看起来很黑 回答时间:2014-2-25 14:10:23

RE:STM32L151 STOP模式唤醒程序跑哪儿了

手册上说睡眠是可以用任何一个中断唤醒的
feiante-155820 回答时间:2014-2-26 09:11:56

RE:STM32L151 STOP模式唤醒程序跑哪儿了

没有中断配置,如果用按钮唤醒,你需要在接按钮的引脚配置中断
wkuang 回答时间:2014-2-26 23:12:55

RE:STM32L151 STOP模式唤醒程序跑哪儿了

你中断设置的正确不, 唤醒是需要中断才能唤醒的, 在休眠状态,处理器智能处理中断。  
一句话,处理器是依靠中断才反应的,包括复位都是一种中断,看看中断设置正确不??
开发者 回答时间:2020-4-7 15:11:10
开发者 回答时间:2020-4-7 15:12:05
我也好奇一个问题 就是程序休眠就停在那个位置了  唤醒后是在停的那个位置继续执行  吗
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版