本帖最后由 hayden0 于 2022-3-16 18:37 编辑
首先根据PWR例程的低功耗中选择待机模式例程,添加到新工程确保进入低功耗时关闭所有LED灯,以防漏电。
电压表电流ua挡接到J15端子上
单机模式可以复位键或者wakeup键唤醒
低功耗任务
void LP_Task(void* parameter)
{
while(1)
{
/* Check if the STBY flag is set */
if (PWR_GetFlagStatus(1,PWR_STBY_FLAG) != RESET)
{
/* Clear Wake Up flag */
PWR_ClearFlag(PWR_STBY_FLAG);
}
/* Check if the Wake-Up flag is set */
if (PWR_GetFlagStatus(1,PWR_WKUP2_FLAG) != RESET)
{
/* Clear Wake Up flag */
PWR_ClearFlag(PWR_WKUP2_FLAG);
}
/* Delay a long time */
vTaskDelay(2000);
printf("\r\n MCU Prepare Enter Standby Mode Core Stop Run \r\n");
LedOff(PORT_GROUP1, LED1_PIN);
LedOff(PORT_GROUP2, LED2_PIN | LED3_PIN | LED4_PIN | LED5_PIN);
/* Request to enter STANDBY mode */
PWR_EnterSTANDBYMode(PWR_STOPENTRY_WFI,PWR_CTRL3_RAM2RET);
}
}
唤醒按键按下,执行2s闪灯,然后进入低功耗
注意:如果低功耗配置由于SWD接口GPIO被占用,或者功能关闭等原因无法下载程序,此时只需要把BOOT0接到VCC,按一下复位即可正常下载程序!
|