久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5134|回復: 2
打印 上一主題 下一主題
收起左側

STM32睡眠和停止喚醒源代碼

[復制鏈接]
跳轉到指定樓層
樓主
單片機的休眠喚醒和停止喚醒實驗代碼示例


單片機源程序如下:
  1. #include "wkup.h"
  2. #include "led.h"
  3. #include "delay.h"
  4. void Sys_Sleepy(void)
  5. {  
  6.   SCB->SCR |=0X00;   

  7.         #if defined ( __CC_ARM   )                          
  8.   __force_stores();
  9.         #endif
  10.   /* Request Wait For Interrupt */
  11.   __WFI();
  12. }
  13. //系統進入待機模式
  14. void Sys_Enter_Sys_Sleepy(void)
  15. {                        
  16. //        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //復位所有IO口
  17.         Sys_Sleepy();
  18. }

  19. void EXTI2_IRQHandler(void)
  20. {                                                                                                  
  21.         EXTI_ClearITPendingBit(EXTI_Line2); // 清除LINE10上的中斷標志位        
  22.                   SCB->SCR |=SCB_SCR_SEVONPEND;
  23.           //  Sys_Enter_Sys_Sleepy();
  24.         if(E2==0)//關機?
  25.         {               
  26.                         delay_ms(10000);
  27.                         if(E2==0)
  28.                         {
  29.                                 LED0=0;
  30.                                 Sys_Enter_Sys_Sleepy();
  31.                         }
  32.         } else         LED1=0;

  33.                         
  34. }
  35. void EXTI3_IRQHandler(void)
  36. {                                                                                                  
  37.         EXTI_ClearITPendingBit(EXTI_Line3); // 清除LINE10上的中斷標志位                  
  38.         SCB->SCR |=SCB_SCR_SEVONPEND;
  39.         LED1=!LED1;
  40. /*        if(E3!=0)//關機?
  41.         {               
  42.                 Sys_Enter_Sys_Sleepy();        
  43.         }  else LED0=1;   */
  44. }

  45. //PA0 WKUP喚醒初始化
  46. void WKUP_Init(void)
  47. {        
  48.     GPIO_InitTypeDef  GPIO_InitStructure;                    
  49.         NVIC_InitTypeDef NVIC_InitStructure;
  50.         EXTI_InitTypeDef EXTI_InitStructure;

  51.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);//使能GPIOA和復用功能時鐘

  52.         GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2;         //PE.2
  53.         GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;//上拉輸入  
  54.         GPIO_Init(GPIOE, &GPIO_InitStructure);        //初始化IO

  55.         GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3;         //PE.3
  56.         GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;//上拉輸入  
  57.         GPIO_Init(GPIOE, &GPIO_InitStructure);        //初始化IO
  58.         //使用外部中斷方式
  59.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource2);        //中斷線2連接GPIOE.2
  60.    GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource3);
  61.   EXTI_InitStructure.EXTI_Line = EXTI_Line3|EXTI_Line2;        //設置按鍵所有的外部線路
  62.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                        //設外外部中斷模式:EXTI線路為中斷請求
  63.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  //上升沿觸發
  64.          EXTI_InitStructure.EXTI_LineCmd =ENABLE;// DISABLE;
  65.         EXTI_Init(&EXTI_InitStructure);        // 初始化外部中斷

  66.         NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //使能按鍵所在的外部中斷通道
  67.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
  68.         NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;  
  69.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
  70.         NVIC_Init(&NVIC_InitStructure); //根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器
  71. /*----------------------------------------*/
  72.   NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能按鍵所在的外部中斷通道
  73.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  74.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  75.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
  76.         NVIC_Init(&NVIC_InitStructure); //根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器

  77. if(E2!=0) Sys_Sleepy();    //不是開機,進入待機模式  
  78. }
復制代碼

所有資料51hei提供下載:
睡眠喚醒和停止喚醒實驗.rar (649.88 KB, 下載次數: 70)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:427492 發表于 2019-5-18 17:51 | 只看該作者
樓主,我最近也在做停止喚醒實驗。我是把串口的接收口RXD配置為外部中斷方式,通過給串口發送一個字符來喚醒,F在可以用串口發送字符喚醒,我遇到的問題是“我想把喚醒它的字符顯示出來”,結果沒能實現,我想問一下樓主有解決我問題的方法或思路沒有?
回復

使用道具 舉報

板凳
ID:496117 發表于 2021-4-26 10:48 | 只看該作者
最近搞低功耗的也遇到很多問題,一開始打算用待機模式,畢竟最省電,而且喚醒之后是復位重啟,不用重新初始化電源等,省事!但是待機之后喚醒經常需要按很多次才會響應,后面放棄了,改用停止模式!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线播放 | jvid精品资源在线观看 | 国产香蕉视频在线播放 | 久久综合国产 | 国产精品久久一区二区三区 | 国产精品久久久 | 激情一区二区三区 | 欧美成人精品一区二区男人看 | 国产激情 | 在线一区 | 精品一区二区三区在线观看国产 | 国产一区中文 | 久久久久91 | 日韩国产三区 | 最新免费黄色网址 | 日韩视频免费 | avhd101在线成人播放 | 毛片国产| 午夜天堂精品久久久久 | 久久成 | 精品国产91乱码一区二区三区 | 黄色大片免费播放 | 99热激情 | 凹凸日日摸日日碰夜夜 | 亚洲精品一二三区 | 国产成人精品亚洲日本在线观看 | 国产东北一级毛片 | 国产一区二区不卡 | 一级黄色录像片子 | 久久乐国产精品 | 亚洲天堂中文字幕 | 三级在线免费 | 国产精品视频播放 | 精品欧美在线观看 | 国产精品久久久久久久久久久久久久 | 国产一区二区三区 | 欧美日韩一区二区三区不卡视频 | 久久久区 | 国产精品一区二区三区在线 | 国产一区在线免费 | 狠狠综合久久av一区二区小说 |