FreeRTOS学习8--低功耗tickless

#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接到低点平,按下复位按钮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值