<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      在BLE例程中開啟HAL_SLEEP低功耗后是通過RTC喚醒來實現的,那么需要加入GPIO喚醒需怎么添加呢,其實很簡單:只要添加PM例程中的GPIO喚醒部分即可,睡眠部分也需要處理下。

      GPIO只需要初始化和增加中斷服務函數即可。

      #include "gpio_wake.h"

      volatile uint8_t wake_flag=0;

      void GpioWakeInit()
      {
      GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
      GPIOA_ITModeCfg(GPIO_Pin_5, GPIO_ITMode_FallEdge); // 下降沿喚醒
      PFIC_EnableIRQ(GPIO_A_IRQn);
      PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);
      }


      __INTERRUPT
      __HIGH_CODE
      void GPIOA_IRQHandler(void)
      {
      wake_flag=1;
      GPIOA_ClearITFlagBit(GPIO_Pin_5);
      }

      睡眠函數處理:

      uint32_t CH59x_LowPower(uint32_t time)
      {
      #if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
          volatile uint32_t i;
          uint32_t time_sleep, time_curr;
          unsigned long irq_status;
          if(wake_flag){
             return 2;
          }
          // 提前喚醒
          if (time <= WAKE_UP_RTC_MAX_TIME) {
              time = time + (RTC_MAX_COUNT - WAKE_UP_RTC_MAX_TIME);
          } else {
              time = time - WAKE_UP_RTC_MAX_TIME;
          }
      
          SYS_DisableAllIrq(&irq_status);
          time_curr = RTC_GetCycle32k();
          // 檢測睡眠時間
          if (time < time_curr) {
              time_sleep = time + (RTC_MAX_COUNT - time_curr);
          } else {
              time_sleep = time - time_curr;
          }
          
          // 若睡眠時間小于最小睡眠時間或大于最大睡眠時間,則不睡眠
          if ((time_sleep < SLEEP_RTC_MIN_TIME) || 
              (time_sleep > SLEEP_RTC_MAX_TIME)) {
              SYS_RecoverIrq(irq_status);
              return 2;
          }
      
          RTC_SetTignTime(time);
          SYS_RecoverIrq(irq_status);
        #if(DEBUG == Debug_UART1) // 使用其他串口輸出打印信息需要修改這行代碼
          while((R8_UART1_LSR & RB_LSR_TX_ALL_EMP) == 0)
          {
              __nop();
          }
        #endif
          // LOW POWER-sleep模式
          if(!RTCTigFlag)
          {
              LowPower_Sleep(RB_PWR_RAM2K | RB_PWR_RAM24K | RB_PWR_EXTEND | RB_XT_PRE_EN );
              if(wake_flag){
                 DelayUs(200);
              }
              HSECFG_Current(HSE_RCur_100); // 降為額定電流(低功耗函數中提升了HSE偏置電流)
              i = RTC_GetCycle32k();
              while(i == RTC_GetCycle32k());
              return 0;
          }
      #endif
          return 3;
      }

      主循環添加程序官網gpio喚醒:

      __HIGH_CODE
      __attribute__((noinline))
      void Main_Circulation()
      {
          while(1)
          {
              TMOS_SystemProcess();
              if(wake_flag){
                  PRINT("pa5 wake\n");
                  wake_flag=0;
              }
          }
      }

       

      posted on 2025-11-01 12:10  WCH藍牙應用分享  閱讀(9)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲午夜av一区二区| 国产成人精品视频国产| 亚洲一区二区三区激情在线| 中文字幕日韩视频欧美一区| 九九久久精品国产| 99久久精品国产一区色| 国产精品丝袜亚洲熟女| 国产久免费热视频在线观看| 人妻无码| 国产区精品视频自产自拍| 东方四虎在线观看av| 少妇特黄a一区二区三区| 免费看亚洲一区二区三区| 少妇无套内谢免费视频| 牛牛视频一区二区三区| 乱人伦人妻精品一区二区| 中文字幕在线国产精品| 国产成人精品午夜福利| 国产熟女老阿姨毛片看爽爽| 亚洲VA中文字幕无码久久| 精品国产一区二区三区av性色| 欧美性猛交xxxx免费看| 波多野结衣在线精品视频| 丁香婷婷激情俺也去俺来也| 九九热在线精品视频免费| 日日噜噜夜夜狠狠久久无码区 | 国产精品一区在线蜜臀| 国产精品久久精品国产| 日韩中文字幕高清有码| 99久久久国产精品消防器材| 欧美野外伦姧在线观看| 国产偷拍自拍视频在线观看| 精品一区二区三区四区五区| 人妻少妇偷人精品一区| 99久久精品国产一区色| 思思热在线视频精品| 精品一区二区久久久久久久网站| 中文字幕亚洲人妻一区| 波多野结衣在线播放| 亚洲乱熟乱熟女一区二区| 国产99视频精品免费专区|