OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2116|回复: 1

可以进入待机模式但是唤醒不了

[复制链接]

40

主题

137

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2019-8-4
在线时间
187 小时
发表于 2019-10-30 15:40:05 | 显示全部楼层 |阅读模式
1金钱
长按按键三秒后待机,再按却唤醒不了
void Sys_Standby(void)
{  
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
         PWR_EnterSTANDBYMode();
        PWR_WakeUpPinCmd(ENABLE);
//RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //复位所有IO口

}
//系统进入待机模式
void Sys_Enter_Standby(void)
{                         
        Sys_Standby();
        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //复位所有IO口
}
//检测WKUP脚的信号
//返回值1:连续按下3s以上
//      0:错误的触发       
u8 Check_WKUP(void)
{
        if(WKUP_KD==1)
        {
                delay_ms(3000);
                if(WKUP_KD==1) return 1;
                 
        }
        return 0;               
}
//中断,检测到PA0脚的一个上升沿.          
//中断线0线上的中断检测


void EXTI0_IRQHandler(void)
{                                                                                                  
    EXTI_ClearITPendingBit(EXTI_Line0);
        if(Check_WKUP())
        {
                Sys_Enter_Standby();
        }
       
}
//PA0 WKUP唤醒初始化
void WKUP_Init(void)
{       

       
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_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;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
       
        EXTI_InitStructure.EXTI_Line=EXTI_Line0;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;
        EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;
        EXTI_Init(&EXTI_InitStructure);
       
        NVIC_InitStructure.NVIC_IRQChannel= EXTI0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;
        NVIC_Init(&NVIC_InitStructure);
       
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-10-31 02:35:25 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 20:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表