| 
 
| 本帖最后由 ackermander 于 2017-7-26 16:44 编辑 
 进入RTC 中断后就会多出200uA 的电流, 是什么原因, 中断什么代码也没有, 而且在计时的时候功耗也不会变化.
 改了很多代码都没用, 只有重新插拔电源才有用.
 
 --------------------------------------------------stm8l15x_it.c 中的代码----------------------------------------
 INTERRUPT_HANDLER(RTC_IRQHandler,4)
 {
 /* In order to detect unexpected events during development,
 it is recommended to set a breakpoint on the following instruction.
 */
 //GPIO_SetBits(GPIOB, 0x3);
 }
 ------------------------------------------------------------------------------------------------------------------------
 -----------------------------------------main.c 中的代码-----------------------------------------------------------
 main()
 {
 ..........一些无关配置.......
 RTC_Config_copy();
 while(1)
 {
 //disable_other();
 // 进入halt() 状态.
 halt();
 
 }
 
 }
 
 void RTC_Config_copy(void)//设置RTC中断
 {
 /* Select LSE as system clock source */
 CLK_SYSCLKSourceSwitchCmd(ENABLE);
 CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSE);
 /* system clock prescaler: 1*/
 CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
 while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_LSE)
 {}
 
 //RTC_DeInit(); //此句可以不加,视情况而定,加了之后,功耗会提高很多
 CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//RTC时钟门控使能
 CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);
 RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);
 RTC_ITConfig(RTC_IT_WUT, ENABLE);
 RTC_SetWakeUpCounter(10);//10秒的唤醒周期
 RTC_WakeUpCmd(ENABLE);
 }
 
 
 
 ------------------------------------------------------------------------------------------------------------------------
 
 | 
 |