[STM32L0] 停机模式

[复制链接]
1170|12
 楼主| yszong 发表于 2017-2-26 18:04 | 显示全部楼层 |阅读模式
stm32l051怎样进入停机模式
lizye 发表于 2017-2-26 18:11 | 显示全部楼层
还有什么现象?能再详细描述下吗?
lizye 发表于 2017-2-26 18:11 | 显示全部楼层
还有什么现象?能再详细描述下吗?
 楼主| yszong 发表于 2017-2-26 18:13 | 显示全部楼层
我用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
发现程序还在运行
就试了下HAL_PWR_EnterSTANDBYMode();
发现单片机给玩坏了
spark周 发表于 2017-2-26 18:15 | 显示全部楼层
,拉高nrst程序
 楼主| yszong 发表于 2017-2-26 18:16 | 显示全部楼层
拉高nrst程序还是不运行,程序也下不进去
 楼主| yszong 发表于 2017-2-26 18:19 | 显示全部楼层

while(1)
{
   LedOff();
   HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
   SystemClock_Config();
   LedOn();
}
灯一直亮
 楼主| yszong 发表于 2017-2-26 18:20 | 显示全部楼层
    HAL_Delay(1000);
                LedOff();
        //        HAL_NVIC_DisableIRQ(SysTick_IRQn);
                HAL_SuspendTick();
                HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
                HAL_ResumeTick();
                SystemClock_Config();
                LedOn();
现在可以进入stop模式但醒不来了,用的是外部中断
huangchui 发表于 2017-2-26 18:21 | 显示全部楼层
F0的固件库里有从STOP模式唤醒的例程的吧
zhanghqi 发表于 2017-2-26 18:22 | 显示全部楼层
//定义IO初始化结构体
GPIO_InitTypeDef GPIO_InitStructure;
   
//设置zigbee模块进入低功耗模式
inf_zigbee_sleep();
   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                       RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD ,ENABLE);
   
//管脚初始化  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
//选择GPIO响应速度
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
//设置为输出           
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
//初始化                           
GPIO_Init(GPIOA, &GPIO_InitStructure);  
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                           RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD ,DISABLE);
   
ADC_Cmd(ADC1,DISABLE);
//进入低功耗模式
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
wyjie 发表于 2017-2-26 18:24 | 显示全部楼层
注意:
1.将IO置为模拟输入
2.关闭ADC
理论功耗:14ua
实测功耗:12ua
 楼主| yszong 发表于 2017-2-26 18:25 | 显示全部楼层
发现了我中断里用了延时函数,但 HAL_ResumeTick();还没恢复所以造成我以为一直没唤醒
Bjorn 发表于 2017-2-28 20:49 | 显示全部楼层
拉高nrst试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部