文档介绍:STM32f103-实例——睡眠模式的唤醒
/******************************************************************/
// environment tatus = RCC_WaitForHSEStartUp();/* Wait till HSE is ready */
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/* Enable Prefetch Buffer */
FLASH_SetLatency(FLASH_Latency_2);/* Flash 2 wait state */
RCC_HCLKConfig(RCC_SYSCLK_Div1); /* HCLK = SYSCLK */
RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK2 = HCLK */
RCC_PCLK1Config(RCC_HCLK_Div2); /* PCLK1 = HCLK/2 */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLCmd(ENABLE); /* Enable PLL */
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB|/*总线APB2周围时钟设置*/RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO ,ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) /* Wait till PLL is ready */
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Select PLL as system clock source */
while(RCC_GetSYSCLKSource() != 0x08) /* Wait till PLL is used as system clock source */
{
}
}
}
/*******************************************************************
* Function Name : 从停机模式下唤醒之后:配置系统时钟允许HSE,和pll作为系统时钟。
* Description: Inserts a delay time.
* Input : None
* Output : None
* Return : None
*******************************************************************/
void SYSCLKconfig_STOP(void)
{
RCC_HSEConfig(RCC_HSE_ON); /*HSES使能*/
HSEStartUpStatus = RCC_WaitForHSEStartUp(); /*等待*/
if(HSEStartUpStatus == SUCCESS)
{
RCC_PLLCmd(ENABLE);/*使能*/
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)== RESET); /*等待PLL有效*/
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/*将PLL作为系统时钟*/
while(RCC_GetSYSCLKSource() != 0x08);/*等待*/
}
}
/*******************************************************************
* Function Name :GPIO_Configuration();
* Description : GPIO SET
* Input : nCount: None
* Output : None
* Return : None
********************************************