你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8l低功耗模式为什么电流大约1.35mA

[复制链接]
MCUer 提问时间:2017-8-17 19:32 /
void halt_gpio_init(void)
{
  disableInterrupts();
  CLK_DeInit();
  CLK_SYSCLKSourceSwitchCmd (ENABLE);                                                           //使能切换
  CLK_LSICmd (ENABLE);                                                                                             //使能LSI
  while(CLK_GetFlagStatus(CLK_FLAG_LSIRDY)==RESET);  
    CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);                                         //LSI为系统时钟
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
    while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSI)//等待时钟稳定
  CLK_HSICmd(DISABLE);  
  TIM1_DeInit();
  TIM1_Cmd(DISABLE);
  TIM2_DeInit();
  TIM2_Cmd(DISABLE);
  TIM3_DeInit();
  TIM3_Cmd(DISABLE);
  TIM4_DeInit();
  TIM4_Cmd(DISABLE);
  TIM5_DeInit();
  TIM5_Cmd(DISABLE);
  I2C_DeInit(I2C1);
  I2C_Cmd(I2C1,DISABLE);
  USART_DeInit(USART1);
  USART_Cmd(USART1,DISABLE);
  USART_DeInit(USART2);
  USART_Cmd(USART1,DISABLE);
  USART_DeInit(USART3);
  USART_Cmd(USART1,DISABLE);
//  RTC_DeInit();
  ADC_DeInit(ADC1);
  ADC_Cmd(ADC1,DISABLE);
  ADC_TempSensorCmd(DISABLE);
  ADC_VrefintCmd(DISABLE);
  ADC_ChannelCmd(ADC1,ADC_Channel_18,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM3,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM5,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_I2C1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_SPI1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART2,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART3,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);
//  CLK_PeripheralClockConfig(CLK_Peripheral_RTC,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_LCD,DISABLE);
  GPIO_DeInit(GPIOA);
  GPIO_DeInit(GPIOB);
  GPIO_DeInit(GPIOC);
  GPIO_DeInit(GPIOD);
    GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
//  GPIO_Init(GPIOA,GPIO_Pin_0|GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Slow);

  GPIO_Init(GPIOB, GPIO_Pin_1,GPIO_Mode_Out_PP_High_Slow);                               //wakeup 7137
  GPIO_Init(GPIOB, GPIO_Pin_3,GPIO_Mode_Out_PP_High_Slow);                              //note 7137 recv information
  GPIO_Init(GPIOB, GPIO_Pin_6,GPIO_Mode_Out_PP_High_Slow);                              //note 7137 recv information
  GPIO_Init(GPIOD, GPIO_Pin_0,GPIO_Mode_Out_PP_High_Slow);                              //LED
  GPIO_Init(GPIOA, GPIO_Pin_2,GPIO_Mode_In_PU_IT);                                                 //ring
  GPIO_Init(GPIOA, GPIO_Pin_3,GPIO_Mode_In_PU_IT);                                                 //preview
  GPIO_Init(GPIOB, GPIO_Pin_7,GPIO_Mode_In_PU_IT);                                                 //OK
  GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_Out_PP_High_Slow);                               //sda
  GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_Out_PP_High_Slow);                              //scl

  GPIO_Init(GPIOB, GPIO_Pin_4,GPIO_Mode_In_PU_IT);                                               //2.4G


  EXTI_DeInit();  
  if(get_monitor()==ON)
  {
//    log("open IR\n");
    GPIO_Init(GPIOB, GPIO_Pin_5,GPIO_Mode_In_PU_IT);                                                   //IR
    EXTI_SetPinSensitivity(EXTI_Pin_5,EXTI_Trigger_Falling);
  }
  if(get_sensitivity_setting()==HIGH)
    GPIO_Init(GPIOB, GPIO_Pin_2,GPIO_Mode_Out_PP_High_Slow);                               //灵敏度高
  else
       GPIO_Init(GPIOB, GPIO_Pin_2,GPIO_Mode_Out_PP_Low_Slow);                            //灵敏度低
  EXTI_SetPinSensitivity(EXTI_Pin_2,EXTI_Trigger_Falling);                                              //中断配置  
  EXTI_SetPinSensitivity(EXTI_Pin_3,EXTI_Trigger_Falling);
  EXTI_SetPinSensitivity(EXTI_Pin_6,EXTI_Trigger_Falling);
  EXTI_SetPinSensitivity(EXTI_Pin_7,EXTI_Trigger_Falling);
  EXTI_SetPinSensitivity(EXTI_Pin_4,EXTI_Trigger_Rising);
  EXTI_ClearITPendingBit(EXTI_IT_PortB);
  EXTI_ClearITPendingBit(EXTI_IT_PortD);
  enableInterrupts();     
  Flash_OFF_act_halt();


}

    default:
      if(flag==0)
      {
        bjy_disable_i2c();
//        halt_init();
        PWR_DeInit();
        PWR_PVDCmd(DISABLE);
        CLK_HaltConfig(CLK_Halt_FastWakeup, ENABLE);
        halt_gpio_init();
        PWR_FastWakeUpCmd(ENABLE);
        PWR_UltraLowPowerCmd(ENABLE);                   //超低功耗
        halt();
        bjy_clk_init();
        bjy_usart_init();
        bjy_adc_init();
        bjy_adc_conv();
        log("halt over\n");
        bjy_rtc_init();

      }
      break;

收藏 评论3 发布时间:2017-8-17 19:32

举报

3个回答
MCUer 回答时间:2017-8-17 19:32:26
求助啊 困扰我 好几天了
MCUer 回答时间:2017-8-17 19:32:50
能关的我都关了
sssdd 回答时间:2017-8-18 14:50:30
先排查硬件,把通讯的外设模块电源拆了,或者一个个拔了。
然后,看单片机自己睡着了没。
然后慢慢缩小范围。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版