[其他ST产品] standby 模式

[复制链接]
1446|13
 楼主| Liu01551108 发表于 2020-1-16 10:21 | 显示全部楼层 |阅读模式
STM32F103 的低功耗模式中的STANDBY 是耗电量最低的, 进入后MCU的功耗在 微安级。考虑 进入的方法时必须想到是以何种方式唤醒。网上的例子很多,但大多是用PA0 上的长达3秒的按键来进入STANDBY, 再次长达3秒的按键来退出STANDBY。 实际测试发现如果只用WKUP(PA0)的上升沿来退出STANDBY, 则 无需配置PA0外部中断. PA0 上升沿会直接唤醒MCU.
RunningX 发表于 2020-1-16 10:45 | 显示全部楼层
可以贴上两种方式的代码看一下吗?
 楼主| Liu01551108 发表于 2020-1-17 10:52 | 显示全部楼层
void WKUP_Init(void)  //initial PA0
{       
    GPIO_InitTypeDef  GPIO_InitStructure;                    
        NVIC_InitTypeDef NVIC_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPD;//pull down
        GPIO_Init(GPIOA, &GPIO_InitStructure);
           
}

在主函数main 的loop里执行
void Sys_Standby(void)
{
        NVIC_SystemLPConfig(NVIC_LP_SLEEPDEEP,ENABLE);          
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);          
        PWR_WakeUpPinCmd(ENABLE);  
        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);
        PWR_EnterSTANDBYMode();                  
}

测试时主函数里执行到Sys_Standby(),就进入待机状态。PA0 的上升沿就唤醒。不过待机时测量整个电路板电流时还有4mA的电流,这个应该是其他外设引起的。
wakayi 发表于 2020-2-5 08:24 | 显示全部楼层
非常感谢楼主分享
wowu 发表于 2020-2-5 08:39 | 显示全部楼层
非常感谢楼主分享
xiaoqizi 发表于 2020-2-5 08:45 | 显示全部楼层
非常感谢楼主分享
木木guainv 发表于 2020-2-5 08:47 | 显示全部楼层
非常感谢楼主分享
磨砂 发表于 2020-2-5 09:08 | 显示全部楼层
非常感谢楼主分享
晓伍 发表于 2020-2-5 09:12 | 显示全部楼层
非常感谢楼主分享
八层楼 发表于 2020-2-5 09:16 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2020-2-5 10:00 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-2-5 10:07 | 显示全部楼层
非常感谢楼主分享
heimaojingzhang 发表于 2020-2-5 10:11 | 显示全部楼层
非常感谢楼主分享
keaibukelian 发表于 2020-2-5 10:25 | 显示全部楼层
非常感谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

0

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