diff options
Diffstat (limited to 'tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/PWR/STOP/main.c')
-rw-r--r-- | tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/PWR/STOP/main.c | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/PWR/STOP/main.c b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/PWR/STOP/main.c deleted file mode 100644 index 6646098..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/PWR/STOP/main.c +++ /dev/null @@ -1,304 +0,0 @@ -/** - ****************************************************************************** - * @file PWR/STOP/main.c - * @author MCD Application Team - * @version V3.5.0 - * @date 08-April-2011 - * @brief Main program body. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" -#include "stm32_eval.h" - -/** @addtogroup STM32F10x_StdPeriph_Examples - * @{ - */ - -/** @addtogroup PWR_STOP - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -extern __IO uint32_t TimingDelay; -ErrorStatus HSEStartUpStatus; - -/* Private function prototypes -----------------------------------------------*/ -void SYSCLKConfig_STOP(void); -void EXTI_Configuration(void); -void RTC_Configuration(void); -void NVIC_Configuration(void); -void SysTick_Configuration(void); -void Delay(__IO uint32_t nTime); - -/* Private functions ---------------------------------------------------------*/ - -/** - * @brief Main program. - * @param None - * @retval None - */ -int main(void) -{ - /*!< At this stage the microcontroller clock setting is already configured, - this is done through SystemInit() function which is called from startup - file (startup_stm32f10x_xx.s) before to branch to application main. - To reconfigure the default setting of SystemInit() function, refer to - system_stm32f10x.c file - */ - - /* Initialize LEDs and Key Button mounted on STM3210X-EVAL board */ - STM_EVAL_LEDInit(LED1); - STM_EVAL_LEDInit(LED2); - STM_EVAL_LEDInit(LED3); - STM_EVAL_PBInit(BUTTON_KEY, BUTTON_MODE_EXTI); - - /* Enable PWR and BKP clock */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); - - /* Configure EXTI Line to generate an interrupt on falling edge */ - EXTI_Configuration(); - - /* Configure RTC clock source and prescaler */ - RTC_Configuration(); - - /* NVIC configuration */ - NVIC_Configuration(); - - /* Configure the SysTick to generate an interrupt each 1 millisecond */ - SysTick_Configuration(); - - /* Turn on LED1 */ - STM_EVAL_LEDOn(LED1); - - while (1) - { - /* Insert 1.5 second delay */ - Delay(1500); - - /* Wait till RTC Second event occurs */ - RTC_ClearFlag(RTC_FLAG_SEC); - while(RTC_GetFlagStatus(RTC_FLAG_SEC) == RESET); - - /* Alarm in 3 second */ - RTC_SetAlarm(RTC_GetCounter()+ 3); - /* Wait until last write operation on RTC registers has finished */ - RTC_WaitForLastTask(); - - /* Turn off LED1 */ - STM_EVAL_LEDOff(LED1); - - /* Request to enter STOP mode with regulator in low power mode*/ - PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); - - /* At this stage the system has resumed from STOP mode -------------------*/ - /* Turn on LED1 */ - STM_EVAL_LEDOn(LED1); - - /* Configures system clock after wake-up from STOP: enable HSE, PLL and select - PLL as system clock source (HSE and PLL are disabled in STOP mode) */ - SYSCLKConfig_STOP(); - } -} - -/** - * @brief Configures system clock after wake-up from STOP: enable HSE, PLL - * and select PLL as system clock source. - * @param None - * @retval None - */ -void SYSCLKConfig_STOP(void) -{ - /* Enable HSE */ - RCC_HSEConfig(RCC_HSE_ON); - - /* Wait till HSE is ready */ - HSEStartUpStatus = RCC_WaitForHSEStartUp(); - - if(HSEStartUpStatus == SUCCESS) - { - -#ifdef STM32F10X_CL - /* Enable PLL2 */ - RCC_PLL2Cmd(ENABLE); - - /* Wait till PLL2 is ready */ - while(RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET) - { - } - -#endif - - /* Enable PLL */ - RCC_PLLCmd(ENABLE); - - /* Wait till PLL is ready */ - while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) - { - } - - /* Select PLL as system clock source */ - RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); - - /* Wait till PLL is used as system clock source */ - while(RCC_GetSYSCLKSource() != 0x08) - { - } - } -} - -/** - * @brief Configures EXTI Lines. - * @param None - * @retval None - */ -void EXTI_Configuration(void) -{ - EXTI_InitTypeDef EXTI_InitStructure; - - /* Configure EXTI Line17(RTC Alarm) to generate an interrupt on rising edge */ - EXTI_ClearITPendingBit(EXTI_Line17); - EXTI_InitStructure.EXTI_Line = EXTI_Line17; - EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; - EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; - EXTI_InitStructure.EXTI_LineCmd = ENABLE; - EXTI_Init(&EXTI_InitStructure); -} - -/** - * @brief Configures RTC clock source and prescaler. - * @param None - * @retval None - */ -void RTC_Configuration(void) -{ - /* RTC clock source configuration ------------------------------------------*/ - /* Allow access to BKP Domain */ - PWR_BackupAccessCmd(ENABLE); - - /* Reset Backup Domain */ - BKP_DeInit(); - - /* Enable the LSE OSC */ - RCC_LSEConfig(RCC_LSE_ON); - /* Wait till LSE is ready */ - while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET) - { - } - - /* Select the RTC Clock Source */ - RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); - - /* Enable the RTC Clock */ - RCC_RTCCLKCmd(ENABLE); - - /* RTC configuration -------------------------------------------------------*/ - /* Wait for RTC APB registers synchronisation */ - RTC_WaitForSynchro(); - - /* Set the RTC time base to 1s */ - RTC_SetPrescaler(32767); - /* Wait until last write operation on RTC registers has finished */ - RTC_WaitForLastTask(); - - /* Enable the RTC Alarm interrupt */ - RTC_ITConfig(RTC_IT_ALR, ENABLE); - /* Wait until last write operation on RTC registers has finished */ - RTC_WaitForLastTask(); -} - -/** - * @brief Configures NVIC and Vector Table base location. - * @param None - * @retval None - */ -void NVIC_Configuration(void) -{ - NVIC_InitTypeDef NVIC_InitStructure; - - /* 2 bits for Preemption Priority and 2 bits for Sub Priority */ - NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); - - NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); -} - -/** - * @brief Configures the SysTick to generate an interrupt each 1 millisecond. - * @param None - * @retval None - */ -void SysTick_Configuration(void) -{ - /* Setup SysTick Timer for 1 msec interrupts */ - if (SysTick_Config(SystemCoreClock / 1000)) - { - /* Capture error */ - while (1); - } - /* Set SysTick Priority to 3 */ - NVIC_SetPriority(SysTick_IRQn, 0x0C); -} - -/** - * @brief Inserts a delay time. - * @param nTime: specifies the delay time length, in milliseconds. - * @retval None - */ -void Delay(__IO uint32_t nTime) -{ - TimingDelay = nTime; - - while(TimingDelay != 0); - -} - -#ifdef USE_FULL_ASSERT - -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t* file, uint32_t line) -{ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - - /* Infinite loop */ - while (1) - { - } -} - -#endif - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |