在RTOS中设计低功耗空闲任务,核心是让CPU在无任务可运行时进入STOP模式,同时确保外设状态不丢失。首先,空闲任务应调用低功耗钩子函数(如vApplicationIdleHook),在其中检查系统是否允许睡眠(例如通过信号量或标志位管理)。进入STOP模式前,需保存关键外设寄存器(如RTC、备份域、DMA配置)到RAM,并关闭不必要时钟(如HSE、PLL),仅保留LSE或LSI供RTC唤醒。使用RTC闹钟或外部中断作为唤醒源,唤醒后先恢复时钟树和外设寄存器,再重新初始化中断优先级。实操建议:利用MCU的LPUART或LPTIM作为唤醒源,避免使用SysTick(STOP下停止),并在空闲任务中设置一个“睡眠许可”标志,由驱动层在释放资源时置位。测试时用电流表验证功耗,并确保唤醒后任务调度正常,无死锁。
mcuku 阿沐 · 2026-08-27