1. 测试休眠功耗的程序从GD32L23x_Firmware_Library_V1.0.3\example\PMU\Deepsleep_wakeup_exti中移植过来,主程序如下:
int main(void)
{
/* configure systick */
systick_config();
/* configure led */
led_config();
/* enable clock */
rcu_periph_clock_enable(RCU_PMU);
/* configure WAKEUP key EXTI */
gd_eval_key_init(KEY_WAKEUP, KEY_MODE_EXTI);
/* delay 2s */
delay_1ms(2000);
gd_eval_led_off(LED1);
gd_eval_led_off(LED2);
gd_eval_led_off(LED3);
gd_eval_led_off(LED4);
/* enter deepsleep mode and use WAKEUP key generate a exti interrupt to wakeup mcu */
pmu_to_deepsleepmode(PMU_LDNPDSP_LOWDRIVE, WFI_CMD, PMU_DEEPSLEEP);
while(1) {
}
}
2. 现象:程序下载后正常进入休眠状态,WAKEUP键唤醒,但是下次上电后再也下载不进程序,keil下载时提示如下信息:
3. 解决方法:
方法1:闪电后四个指示灯闪烁时程序还没有进入Deepsleep状态,此期间点击下载就可以成功。
方法2:进入Deepsleep状态后按开发板上的外部中断唤醒键将MCU从Deepsleep中唤醒后也可以下载程序。
方法3:把boot0拉高,重新上电后点击下载可以成功。