我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 517|回复: 4

待机唤醒实验

[复制链接]

该用户从未签到

37

主题

172

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2020-12-3 09:09:06 | 显示全部楼层 |阅读模式
#include "wkup.h"
#include "led.h"
#include "delay.h"

void Sys_Standby(void)
{  
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);    //ʹÄÜPWRÍâÉèʱÖÓ
    PWR_WakeUpPinCmd(ENABLE);  //ʹÄÜ»½ÐѹܽŹ¦ÄÜ
    PWR_EnterSTANDBYMode();       //½øÈë´ýÃü£¨STANDBY£©Ä£Ê½         
}
//ϵͳ½øÈë´ý»úģʽ
void Sys_Enter_Standby(void)
{            
    RCC_APB2PeriphResetCmd(0X01FC,DISABLE);    //¸´Î»ËùÓÐIO¿Ú
    Sys_Standby();
}
//¼ì²âWKUP½ÅµÄÐźÅ
//·µ»ØÖµ1:Á¬Ðø°´ÏÂ3sÒÔÉÏ
//      0:´íÎóµÄ´¥·¢   
u8 Check_WKUP(void)
{
    u8 t=0;    //¼Ç¼°´ÏµÄʱ¼ä
    LED0=0; //ÁÁµÆDS0
    while(1)
    {
        if(WKUP_KD)
        {
            t++;            //ÒѾ­°´ÏÂÁË
            delay_ms(30);
            if(t>=100)        //°´Ï³¬¹ý3ÃëÖÓ
            {
                LED0=0;         //µãÁÁDS0
                return 1;     //°´ÏÂ3sÒÔÉÏÁË
            }
        }
        else
        {
            LED0=1;
            return 0; //°´Ï²»×ã3Ãë
        }
    }
}  
//ÖжÏ,¼ì²âµ½PA0½ÅµÄÒ»¸öÉÏÉýÑØ.      
//ÖжÏÏß0ÏßÉϵÄÖжϼì²â


void EXTI0_IRQHandler(void)
{                                                         
    EXTI_ClearITPendingBit(EXTI_Line0); // Çå³ýLINE10ÉϵÄÖжϱê־λ         
    if(Check_WKUP())//¹Ø»ú?
    {         
        Sys_Enter_Standby();  
    }
}
//PA0 WKUP»½Ðѳõʼ»¯
void WKUP_Init(void)
{   
    GPIO_InitTypeDef  GPIO_InitStructure;            
    NVIC_InitTypeDef NVIC_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);//ʹÄÜGPIOAºÍ¸´Óù¦ÄÜʱÖÓ

    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;     //PA.0
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPD;//ÏÂÀ­ÊäÈë
    GPIO_Init(GPIOA, &GPIO_InitStructure);    //³õʼ»¯IO
    //ʹÓÃÍⲿÖжϷ½Ê½
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);    //ÖжÏÏß0Á¬½ÓGPIOA.0

    EXTI_InitStructure.EXTI_Line = EXTI_Line0;    //ÉèÖð´¼üËùÓеÄÍⲿÏß·
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;            //ÉèÍâÍⲿÖжÏģʽ:EXTIÏß·ΪÖжÏÇëÇó
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;  //ÉÏÉýÑØ´¥·¢
       EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);    // ³õʼ»¯ÍⲿÖжÏ

    NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; //ʹÄÜ°´¼üËùÔÚµÄÍⲿÖжÏͨµÀ
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //ÏÈÕ¼ÓÅÏȼ¶2¼¶
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //´ÓÓÅÏȼ¶2¼¶
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ʹÄÜÍⲿÖжÏͨµÀ
    NVIC_Init(&NVIC_InitStructure); //¸ù¾ÝNVIC_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèNVIC¼Ä´æÆ÷

    if(Check_WKUP()==0) Sys_Standby();    //²»ÊÇ¿ª»ú,½øÈë´ý»úģʽ  
}



#ifndef __WKUP_H#define __WKUP_H     
#include "sys.h"
#define WKUP_KD PAin(0)            //PA0 ¼ì²âÊÇ·ñÍⲿWK_UP°´¼ü°´ÏÂ
     
u8 Check_WKUP(void);              //¼ì²âWKUP½ÅµÄÐźÅ
void WKUP_Init(void);             //PA0 WKUP»½Ðѳõʼ»¯
void Sys_Enter_Standby(void);    //ϵͳ½øÈë´ý»úģʽ
#endif



#include "led.h"#include "delay.h"
#include "sys.h"#include "usart.h"
#include "lcd.h"#include "wkup.h"

int main(void) {
     delay_init();             //ÑÓʱº¯Êý³õʼ»
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2      uart_init(9600);         //´®¿Ú³õʼ»¯Îª9600
    LED_Init();                  //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú     WKUP_Init();            //³õʼ»¯WK_UP°´¼ü£¬Í¬Ê±¼ì²âÊÇ·ñÕý³£¿ª»ú£¿
    LCD_Init();                   //³õʼ»¯LCD                       POINT_COLOR=RED;
    LCD_ShowString(30,50,200,16,16,"Mini STM32");        LCD_ShowString(30,70,200,16,16,"WKUP TEST");   
    LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");    LCD_ShowString(30,110,200,16,16,"2014/3/8");     
    while(1)    {
        LED0=!LED0;        delay_ms(250);
    }                                                }   
回复

使用道具 举报

该用户从未签到

1

主题

4703

回帖

5

积分

二级逆天

积分
5

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2020-12-3 10:51:03 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2024-8-7 10:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    4393

    回帖

    2964

    积分

    二级逆天

    积分
    2964

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-12-3 18:54:38 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6740

    回帖

    3

    积分

    二级逆天

    积分
    3

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2020-12-4 07:40:18 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 107 天

    [LV.6]常住居民II

    5

    主题

    6751

    回帖

    1万

    积分

    三级逆天

    积分
    14185

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2020-12-4 08:46:20 | 显示全部楼层
    回复

    使用道具 举报

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

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表