Tlsr8258开发-深度休眠

在测试深度休眠的时候,内存中的数据会丢失,而我需要保持内存里面的数据,芯片介绍有说把数据写道特定的内存区,数据可以进入深度休眠唤醒后还保持。

_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函数执行的开始

Tlsr8258开发-深度休眠_第1张图片

 休眠唤醒的两种方式:(如果进入RTC幻想,按键是无法唤醒设备的)Tlsr8258开发-深度休眠_第2张图片

 

你可能感兴趣的:(TLSR8258,单片机)