代码还是直接使用AT32_Work_Bench生成,这次不再修改任务官方库里的代码,而是只在主函数中增加低功耗的程序 。
增加的代码如下,这里的delay_ms一定要时间长一些,否则,进行待机模式后无法连接仿真器,唤醒后才可以,所以,进入待机模式前要有足够的时间连接仿真器。
crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
if (pwc_flag_get(PWC_STANDBY_FLAG) != RESET) {
/* wakeup from standby */
pwc_flag_clear(PWC_STANDBY_FLAG);
gpio_bits_set(LED2_GPIO_PORT, LED2_PIN);
}
if (pwc_flag_get(PWC_WAKEUP_FLAG) != RESET) {
/* wakeup event occurs */
pwc_flag_clear(PWC_WAKEUP_FLAG);
gpio_bits_set(LED3_GPIO_PORT, LED3_PIN);
}
gpio_bits_set(LED4_GPIO_PORT, LED4_PIN);
delay_ms(5000);
delay_ms(5000);
pwc_standby_mode_enter();
时钟配置:
引脚配置:
如下,在1.8V电压下,进入standby模式,并使能weakup引脚的下的电流大约为0.8uA,这与1.71V时官方数据要大一些:
如果是3.3V的情况下,进行standby模式后的电流是1.23uA,这基本与手册上的一样了。
附:
官方手册中待机模式下电流消耗数据 :
|