#define configUSE_TICKLESS_IDLE 1/*启用低功耗模式FreeRTOSConfig.h文件中*/
/*低功耗模式的进入与退出函数定义 FreeRTOSConfig.h文件中*/
extern void PreSleepProcessing(uint32_t ulExpectedIdleTime);
extern void PostSleepProcessing(uint32_t ulExpectedIdleTime);
#define configPRE_SLEEP_PROCESSING PreSleepProcessing
#define configPOST_SLEEP_PROCESSING PostSleepProcessing
/*
*进入低功耗前的处理
*ulExpectedIdleTime:低功耗运行的时间
*/
void PreSleepProcessing(uint32_t ulExpectedIdleTime)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,DISABLE);
}
/*
*退出低功耗要做的处理
*ulExpectedIdleTime:低功耗运行的时间
*/
void PostSleepProcessing(uint32_t ulExpectedIdleTime)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
}
注意:在低功耗模式下下载程序会下载不进去
解决办法:
1.把boot0/1接到高点平,按下复位按钮
2.下载程序
3.把boot0/1接到低点平,按下复位按钮