OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3512|回复: 1

关于STM8L低功耗模式

[复制链接]

7

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-7-20
在线时间
12 小时
发表于 2016-10-15 21:35:12 | 显示全部楼层 |阅读模式
5金钱
各位高手,请教个问题,我想在STM8L151主电掉电的情况下使起进入Active-halt模式(只启用RTC)使用电池供电,主电恢复后由上电复位电路复位进入正常工作
下面是部分程序,因第一次用该芯片,不知道怎么进入Active-halt模式,下面是部分程序,实测电流超过3mA,请高手们帮我看看那里出问题了
void power_init(void)//电源管理
{
PWR_DeInit();
PWR_PVDLevelConfig(PWR_PVDLevel_3V05);//阀值电压3.05
PWR_PVDCmd(ENABLE);
PWR_FastWakeUpCmd(ENABLE);
PWR_PVDITConfig(ENABLE);
}

void lowpower_config(void)
{
  GPIO_DeInit(GPIOA);
  GPIO_DeInit(GPIOB);
  GPIO_DeInit(GPIOC);
  GPIO_DeInit(GPIOD);
  GPIO_DeInit(GPIOE);
  GPIO_DeInit(GPIOF);
  ADC_DeInit(ADC1);
  TIM2_DeInit();
  TIM1_DeInit();
  USART_DeInit(USART1);
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, DISABLE);
  GPIO_Init(GPIOA, GPIO_Pin_4, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOA, GPIO_Pin_5, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOA, GPIO_Pin_6, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD, GPIO_Pin_1, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD, GPIO_Pin_2, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_1, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_7, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOF, GPIO_Pin_0, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_2, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_4, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_5, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE, GPIO_Pin_6, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD, GPIO_Pin_7, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_5, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB, GPIO_Pin_7, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD,GPIO_Pin_5,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD,GPIO_Pin_4,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOB,GPIO_Pin_6,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOA,GPIO_Pin_7,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_0,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_1,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_2,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_3,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_4,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_5,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD,GPIO_Pin_0,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOD,GPIO_Pin_6,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOE,GPIO_Pin_7,GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOC, GPIO_Pin_2, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOC, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);
  GPIO_Init(GPIOC, GPIO_Pin_4, GPIO_Mode_In_PU_No_IT);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART1, DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, DISABLE);

  PWR_UltraLowPowerCmd(ENABLE);
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
  CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSE);
  CLK_SYSCLKSourceSwitchCmd(ENABLE);
  while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSE){};
  CLK_HSEConfig(CLK_HSE_OFF);
  CLK_HaltConfig(CLK_Halt_FastWakeup,ENABLE);//快速唤醒
  halt();
}


INTERRUPT_HANDLER(EXTIE_F_PVD_IRQHandler, 5)
{
  lowpower_config();
  PWR_PVDITConfig(DISABLE);

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165047
金钱
165047
注册时间
2010-12-1
在线时间
2102 小时
发表于 2016-10-18 22:53:53 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-29 05:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表