我的程序在Debug时,进入halt()模式,程序就会跑飞,不知是哪里设置的不对?
或者谁有可用的例程参考下
主函数里的代码:- while(1)
- {
-
- USART_Process();
- TemporaryDataPro();
- TransmitSportDataProcess();
- timeprocess();
-
- if(0==KEYDELAY && 0==BlueToothPowerUpFlag)
- {
- PWR_FastWakeUpCmd(ENABLE);
- PWR_UltraLowPowerCmd(ENABLE);
-
- RTC_SetWakeUpCounter(2047);
- RTC_WakeUpCmd(ENABLE);
- halt();
-
- RTC_WakeUpCmd(DISABLE);
- }
- //可以用RTC来唤醒,1、选择RT时钟源 2、使能RTC
- //3、选择RTC唤醒时钟源 4、RTC中断使能 5、设置唤醒时间 6、唤醒使能
- }
RTC时钟设置:- void RTC_Config(void)
- {
- CLK_LSEConfig(CLK_LSE_ON);
- while (CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);
- CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);
- CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
-
- RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
- RTC_ITConfig(RTC_IT_WUT, ENABLE);
-
- enableInterrupts();
- }
中断函数代码:- #pragma vector=6
- __interrupt void RTC_IRQHandler(void)
- {
- interflag=1;
- adflag=1;
- EnergyDisplay(125);
- RTC_ClearITPendingBit(RTC_IT_WUT);
- }
|