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

查看: 6061|回复: 1

STM8L151F3采用LSE,RTC方式进入halt后的低功耗问题?

[复制链接]

3

主题

11

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-6-5 21:55:44 | 显示全部楼层 |阅读模式
STM8L151F3,仅在PD0接了一只LED经电阻至GND,以及32.768K晶振在PA2、PA3,其余引脚全部空着的。
使用RTC功能,但发现进入halt后的电流仍然很大,测量有50uA,远超过官网介绍的1uA内的值。
以下是程序代码,求指点电流过大的原因和处理方法:

 
void main(void)
{
/* Init I/O ports */
/* Port B in output push-pull 0 */
  GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
/* Port C in output push-pull 0 except Button pins */
  GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
/* LED init: GPIO set in output */
  GPIO_Init(LED_GREEN_PORT,LED_GREEN_PIN,GPIO_Mode_Out_PP_High_Slow);
  Delay(0x1FFF);
  GPIO_LOW(LED_GREEN_PORT,LED_GREEN_PIN);

  // Select LSE (32.768 KHz) as RTC clock source
  CLK_LSEConfig(CLK_LSE_ON);
  while (CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);
  CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_2);
  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
  RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
  RTC_ITConfig(RTC_IT_WUT, ENABLE);
  while (1)
  {
    /* RTC will wake-up from halt every 5second   */
    RTC_SetWakeUpCounter(1);
    RTC_WakeUpCmd(ENABLE);      

    /* Enter Wait for interrupt mode*/
    halt();
//以下LED闪烁,测量电流时需要屏蔽掉
//    GPIO_TOGGLE(LED_GREEN_PORT,LED_GREEN_PIN);
    RTC_WakeUpCmd(DISABLE);
  }
}


//RTC的中断处理函数
INTERRUPT_HANDLER(RTC_CSSLSE_IRQHandler, 4)
{
  /* Clear Interrupt pending bit */
  RTC_ClearITPendingBit(RTC_IT_WUT);
}

 
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2013-6-6 09:04:32 | 显示全部楼层

RE:STM8L151F3采用LSE,RTC方式进入halt后的低功耗问题?

你把IO口设置为高组态试试。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版