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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5052|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32睡眠和停止喚醒源代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
單片機(jī)的休眠喚醒和停止喚醒實(shí)驗(yàn)代碼示例


單片機(jī)源程序如下:
  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. //系統(tǒng)進(jìn)入待機(jī)模式
  14. void Sys_Enter_Sys_Sleepy(void)
  15. {                        
  16. //        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //復(fù)位所有IO口
  17.         Sys_Sleepy();
  18. }

  19. void EXTI2_IRQHandler(void)
  20. {                                                                                                  
  21.         EXTI_ClearITPendingBit(EXTI_Line2); // 清除LINE10上的中斷標(biāo)志位        
  22.                   SCB->SCR |=SCB_SCR_SEVONPEND;
  23.           //  Sys_Enter_Sys_Sleepy();
  24.         if(E2==0)//關(guān)機(jī)?
  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上的中斷標(biāo)志位                  
  38.         SCB->SCR |=SCB_SCR_SEVONPEND;
  39.         LED1=!LED1;
  40. /*        if(E3!=0)//關(guān)機(jī)?
  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和復(fù)用功能時(shí)鐘

  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;        //設(shè)置按鍵所有的外部線路
  62.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;                        //設(shè)外外部中斷模式:EXTI線路為中斷請(qǐng)求
  63.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  //上升沿觸發(fā)
  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); //根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)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); //根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器

  77. if(E2!=0) Sys_Sleepy();    //不是開(kāi)機(jī),進(jìn)入待機(jī)模式  
  78. }
復(fù)制代碼

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


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

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
板凳
ID:427492 發(fā)表于 2019-5-18 17:51 | 只看該作者
樓主,我最近也在做停止喚醒實(shí)驗(yàn)。我是把串口的接收口RXD配置為外部中斷方式,通過(guò)給串口發(fā)送一個(gè)字符來(lái)喚醒。現(xiàn)在可以用串口發(fā)送字符喚醒,我遇到的問(wèn)題是“我想把喚醒它的字符顯示出來(lái)”,結(jié)果沒(méi)能實(shí)現(xiàn),我想問(wèn)一下樓主有解決我問(wèn)題的方法或思路沒(méi)有?
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久a久久| 国产精品久久 | 国产极品车模吞精高潮呻吟 | 成人免费毛片片v | 91九色在线观看 | 国产一级视频免费播放 | 国产欧美精品一区二区三区 | 99精品欧美一区二区三区综合在线 | 最新日韩欧美 | 日韩在线免费视频 | 精品欧美一区二区久久久伦 | av特级毛片 | 欧美精品一区二区三区在线 | 91精品中文字幕一区二区三区 | 日韩av在线一区二区 | 午夜免费福利影院 | 中文字幕精品一区二区三区精品 | 久草网站 | 成人在线免费观看 | 国产在线激情视频 | 中文字幕三区 | 秋霞在线一区 | 一本一道久久a久久精品综合 | 国产 日韩 欧美 中文 在线播放 | 亚洲精品视频在线观看免费 | 国产中文在线观看 | 91porn在线观看 | 日本视频一区二区三区 | 男女性毛片 | 一级a性色生活片久久毛片 午夜精品在线观看 | 国产视频观看 | 日韩在线免费播放 | 亚洲一区二区中文字幕在线观看 | 男女啪啪高潮无遮挡免费动态 | 亚洲精品久久久久久一区二区 | 特级黄一级播放 | 精品国产不卡一区二区三区 | 午夜免费观看网站 | 久久99精品久久久久久 | 玖操| 久久久视频在线 |