在测试深度休眠的时候,内存中的数据会丢失,而我需要保持内存里面的数据,芯片介绍有说把数据写道特定的内存区,数据可以进入深度休眠唤醒后还保持。
_attribute_data_retention_ unsigned char a = 0;
void goto_suspend_mode(void)
{
a++;
prints("goto suspend mode\r\n");
printHex(&a, 1);
WaitMs(1000);
za
cpu_sleep_wakeup(DEEPSLEEP_MODE_RET_SRAM_LOW16K , PM_WAKEUP_TIMER,(clock_time() + 4000*CLOCK_16M_SYS_TIMER_CLK_1MS));
WaitMs(1000);
prints("wakeup from suspend mode\r\n");
WaitMs(1000);
}
1. 要在变量前加_attribute_data_retention_
2.休眠模式:DEEPSLEEP_MODE_RET_SRAM_LOW16K
3.要指定内部RC,并且为之一定要放在mian函数执行的开始
休眠唤醒的两种方式:(如果进入RTC幻想,按键是无法唤醒设备的)