打印
[STM32L0]

stm32l051怎样进入停机模式

[复制链接]
1972|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2018-7-24 20:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32l051怎样进入停机模式
沙发
lizye| | 2018-7-24 20:05 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
lizye| | 2018-7-24 20:07 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
地板
yszong|  楼主 | 2018-7-24 20:10 | 只看该作者
我用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
发现程序还在运行
就试了下HAL_PWR_EnterSTANDBYMode();
发现单片机给玩坏了

使用特权

评论回复
5
spark周| | 2018-7-24 20:11 | 只看该作者
,拉高nrst程序

使用特权

评论回复
6
yszong|  楼主 | 2018-7-24 20:14 | 只看该作者
拉高nrst程序还是不运行,程序也下不进去

使用特权

评论回复
7
yszong|  楼主 | 2018-7-24 20:16 | 只看该作者

while(1)
{
   LedOff();
   HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
   SystemClock_Config();
   LedOn();
}
灯一直亮

使用特权

评论回复
8
yszong|  楼主 | 2018-7-24 20:17 | 只看该作者
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模式但醒不来了,用的是外部中断

使用特权

评论回复
9
huangchui| | 2018-7-24 20:25 | 只看该作者

F0的固件库里有从STOP模式唤醒的例程的吧

使用特权

评论回复
10
zhanghqi| | 2018-7-24 20:27 | 只看该作者
//定义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);

使用特权

评论回复
11
wyjie| | 2018-7-24 20:29 | 只看该作者
注意:
1.将IO置为模拟输入
2.关闭ADC
理论功耗:14ua
实测功耗:12ua

使用特权

评论回复
12
yszong|  楼主 | 2018-7-24 20:31 | 只看该作者

发现了我中断里用了延时函数,但 HAL_ResumeTick();还没恢复所以造成我以为一直没唤醒

使用特权

评论回复
13
hanwe| | 2018-7-24 20:32 | 只看该作者
拉高nrst试试

使用特权

评论回复
14
yszong|  楼主 | 2018-7-24 20:35 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先        

使用特权

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

本版积分规则

830

主题

11379

帖子

4

粉丝