微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM8L RTC唤醒 功耗

STM8L RTC唤醒 功耗

时间:10-02 整理:3721RD 点击:

STM8L RTC唤醒   功耗远远高于  1uA  求大神 指导

  1. <font size="4">void sleep(void)
  2.         {
  3.                 GPIOA->DDR=0xFF;
  4.                 GPIOA->CR1=0xFF;
  5.                 GPIOA->CR2=0x00;
  6.                 GPIOA->ODR=0X00;
  7.         
  8.                 GPIOB->DDR=0xFF;
  9.                 GPIOB->CR1=0xFF;
  10.                 GPIOB->CR2=0x00;
  11.                 GPIOB->ODR=0X00;
  12.                
  13.                 GPIOC->DDR=0XFF;
  14.                 GPIOC->CR1=0XFF;
  15.                 GPIOC->CR2=0X00;
  16.                 GPIOC->ODR=0X04;//休眠前 应置F113的ASK脚为高电平  以降低功耗
  17.                
  18.                 GPIOD->DDR=0XFF;
  19.                 GPIOD->CR1=0XFF;
  20.                 GPIOD->CR2=0X00;
  21.                 GPIOD->ODR=0X00;
  22.                
  23.                 CLK->PCKENR1=0x00;
  24.                 CLK->PCKENR2=0x00;
  25.                                 
  26.                 WWDG->CR=0Xfe;
  27.                 PWR->CSR2=0X03;//内部参考电压 关闭 以降低功耗0X03
  28.         }



  29. void RTC_init(void)
  30. {
  31.         CLK->PCKENR2 |= 0x04;    //外设RTC时钟允许
  32.         CLK->CRTCR |= 0X04;
  33.         while( (CLK->CRTCR&0x01) == 0x1 );//CLK_CRTCR[0]=1为忙
  34.         
  35.         RTC->WPR = 0xCA;
  36.         RTC->WPR = 0x53;
  37.   RTC->CR2 &=~0X04;
  38.         RTC->CR1 &=~0X07;
  39.         
  40.         while(( RTC->ISR1&0x04) == 0 );  
  41.         
  42.         RTC->CR1 |= 0X02;
  43.         RTC->WUTRH = 0xf0;//50
  44.   RTC->WUTRL = 40;//40
  45.         RTC->CR2 |= 0X04;
  46.         RTC->CR2 |= 0X40;
  47.         RTC->WPR = 0xFF;
  48.         
  49.    _asm("rim");
  50. }</font>

复制代码

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top