<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[关于LVGL低功耗，唤醒后崩溃了]]></title><description><![CDATA[<p>void app_enter_sleep_handler(void)<br />
{<br />
	if(g_group!=NULL)<br />
	{<br />
		lv_group_remove_all_objs(g_group);<br />
	}<br />
	if(prj_parent_cont!=NULL)<br />
	{<br />
		lv_obj_clean(prj_parent_cont);</p>
<pre><code>}
lv_obj_add_flag(prj_parent_cont,LV_OBJ_FLAG_HIDDEN);
</code></pre>
<p>//	ui_clear_all();<br />
//	at_send_rsp((char *)&quot;&lt;mAp&gt;&quot;);<br />
//	laser_state = 0;<br />
	pmu_ioldosw_ctrl(false);<br />
	os_timer_stop(&amp;lv_schedule_timer);<br />
	stop_encoder_timer();<br />
	timer_stop(Timer0);<br />
	NVIC_DisableIRQ(TIMER0_IRQn);<br />
	wakeup_gpio_cfg();//config wakeup io handler<br />
	//sys_sleep_gpio();<br />
}<br />
void app_exit_sleep_handler(void)<br />
{<br />
	system_sleep_disable();<br />
	printf(&quot;1&quot;);<br />
	clear_sleep_record_time();<br />
	pmu_port_wakeup_func_clear(GPIO_PORT_D,(1&lt;&lt;GPIO_BIT_0));<br />
//	pmu_port_wakeup_func_clear(GPIO_PORT_D,(1&lt;&lt;GPIO_BIT_3));<br />
	printf(&quot;2&quot;);<br />
	pmu_ioldosw_ctrl(true);<br />
	__SYSTEM_GPIO_CLK_ENABLE();<br />
system_regs-&gt;mdm_qspi_cfg.qspi_ref_128m_en = 1; // configure qspi reference clock to 128MHz<br />
system_regs-&gt;mdm_qspi_cfg.qspi_ref_clk_sel = 1; // qspi is used for internal flash, set its reference clock to 96MHz<br />
system_set_internal_flash_clock_div(0);<br />
// configure PSRAM pin and init PSRAM<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_0, PORTC0_FUNC_QSPI0_IO3);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_1, PORTC1_FUNC_QSPI0_SCLK0);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_2, PORTC2_FUNC_QSPI0_CSN0);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_3, PORTC3_FUNC_QSPI0_IO1);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_4, PORTC4_FUNC_QSPI0_IO2);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_5, PORTC5_FUNC_QSPI0_IO0);<br />
psram_init();</p>
<pre><code>printf(&quot;3&quot;);
sensor_iic_init();
</code></pre>
<p>//	at_load_info_from_flash();<br />
	get_gain();<br />
	// User task initialization, for buttons.<br />
//	user_task_init();<br />
	uart0_init(115200);<br />
	uart1_init(9600);<br />
	led_init();<br />
	curr_img_id=0;<br />
	funflag = QINGJIAO_F;<br />
	ledflag = 3;</p>
<p>//	 gui_main();<br />
	display_init();<br />
	printf(&quot;4&quot;);</p>
<pre><code>printf(&quot;5&quot;);
printf(&quot;5a1 coords.x1=%d\n&quot;, prj_parent_cont-&gt;coords.x1);
prj_prev_cont = lv_obj_create(prj_parent_cont);
printf(&quot;6&quot;);
knob_home_page_entry(prj_prev_cont);
printf(&quot;7&quot;);
lv_obj_clear_flag(prj_parent_cont,LV_OBJ_FLAG_HIDDEN);
printf(&quot;app_exit_sleep_handler %d\r\n&quot;,os_get_free_heap_size());
input_encoder_init();
__SYSTEM_TIMER_CLK_ENABLE();
timer_init(Timer0, system_get_clock_config()*500*LV_TICK_COUNT, TIMER_DIV_NONE);
timer_start(Timer0);
NVIC_SetPriority(TIMER0_IRQn, 5);
NVIC_EnableIRQ(TIMER0_IRQn);
os_timer_start(&amp;lv_schedule_timer, 10, true);
</code></pre>
<p>}<br />
唤醒时再prj_prev_cont = lv_obj_create(prj_parent_cont);这里奔溃了。<br />
<img src="/assets/uploads/files/1794203804510-455f9dc6-332c-4b05-9fa4-27cda513d66d-image.png" alt="0_1794203805294_455f9dc6-332c-4b05-9fa4-27cda513d66d-image.png" class="img-responsive img-markdown" /><br />
这是什么原因，该怎么解决？</p>
]]></description><link>http://www.freqchip.net:4567/topic/1928/关于lvgl低功耗-唤醒后崩溃了</link><generator>RSS for Node</generator><lastBuildDate>Mon, 09 Nov 2026 11:17:14 GMT</lastBuildDate><atom:link href="http://www.freqchip.net:4567/topic/1928.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Nov 2026 05:57:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 关于LVGL低功耗，唤醒后崩溃了 on Invalid Date]]></title><description><![CDATA[<p>void app_enter_sleep_handler(void)<br />
{<br />
	if(g_group!=NULL)<br />
	{<br />
		lv_group_remove_all_objs(g_group);<br />
	}<br />
	if(prj_parent_cont!=NULL)<br />
	{<br />
		lv_obj_clean(prj_parent_cont);</p>
<pre><code>}
lv_obj_add_flag(prj_parent_cont,LV_OBJ_FLAG_HIDDEN);
</code></pre>
<p>//	ui_clear_all();<br />
//	at_send_rsp((char *)&quot;&lt;mAp&gt;&quot;);<br />
//	laser_state = 0;<br />
	pmu_ioldosw_ctrl(false);<br />
	os_timer_stop(&amp;lv_schedule_timer);<br />
	stop_encoder_timer();<br />
	timer_stop(Timer0);<br />
	NVIC_DisableIRQ(TIMER0_IRQn);<br />
	wakeup_gpio_cfg();//config wakeup io handler<br />
	//sys_sleep_gpio();<br />
}<br />
void app_exit_sleep_handler(void)<br />
{<br />
	system_sleep_disable();<br />
	printf(&quot;1&quot;);<br />
	clear_sleep_record_time();<br />
	pmu_port_wakeup_func_clear(GPIO_PORT_D,(1&lt;&lt;GPIO_BIT_0));<br />
//	pmu_port_wakeup_func_clear(GPIO_PORT_D,(1&lt;&lt;GPIO_BIT_3));<br />
	printf(&quot;2&quot;);<br />
	pmu_ioldosw_ctrl(true);<br />
	__SYSTEM_GPIO_CLK_ENABLE();<br />
system_regs-&gt;mdm_qspi_cfg.qspi_ref_128m_en = 1; // configure qspi reference clock to 128MHz<br />
system_regs-&gt;mdm_qspi_cfg.qspi_ref_clk_sel = 1; // qspi is used for internal flash, set its reference clock to 96MHz<br />
system_set_internal_flash_clock_div(0);<br />
// configure PSRAM pin and init PSRAM<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_0, PORTC0_FUNC_QSPI0_IO3);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_1, PORTC1_FUNC_QSPI0_SCLK0);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_2, PORTC2_FUNC_QSPI0_CSN0);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_3, PORTC3_FUNC_QSPI0_IO1);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_4, PORTC4_FUNC_QSPI0_IO2);<br />
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_5, PORTC5_FUNC_QSPI0_IO0);<br />
psram_init();</p>
<pre><code>printf(&quot;3&quot;);
sensor_iic_init();
</code></pre>
<p>//	at_load_info_from_flash();<br />
	get_gain();<br />
	// User task initialization, for buttons.<br />
//	user_task_init();<br />
	uart0_init(115200);<br />
	uart1_init(9600);<br />
	led_init();<br />
	curr_img_id=0;<br />
	funflag = QINGJIAO_F;<br />
	ledflag = 3;</p>
<p>//	 gui_main();<br />
	display_init();<br />
	printf(&quot;4&quot;);</p>
<pre><code>printf(&quot;5&quot;);
printf(&quot;5a1 coords.x1=%d\n&quot;, prj_parent_cont-&gt;coords.x1);
prj_prev_cont = lv_obj_create(prj_parent_cont);
printf(&quot;6&quot;);
knob_home_page_entry(prj_prev_cont);
printf(&quot;7&quot;);
lv_obj_clear_flag(prj_parent_cont,LV_OBJ_FLAG_HIDDEN);
printf(&quot;app_exit_sleep_handler %d\r\n&quot;,os_get_free_heap_size());
input_encoder_init();
__SYSTEM_TIMER_CLK_ENABLE();
timer_init(Timer0, system_get_clock_config()*500*LV_TICK_COUNT, TIMER_DIV_NONE);
timer_start(Timer0);
NVIC_SetPriority(TIMER0_IRQn, 5);
NVIC_EnableIRQ(TIMER0_IRQn);
os_timer_start(&amp;lv_schedule_timer, 10, true);
</code></pre>
<p>}<br />
唤醒时再prj_prev_cont = lv_obj_create(prj_parent_cont);这里奔溃了。<br />
<img src="/assets/uploads/files/1794203804510-455f9dc6-332c-4b05-9fa4-27cda513d66d-image.png" alt="0_1794203805294_455f9dc6-332c-4b05-9fa4-27cda513d66d-image.png" class="img-responsive img-markdown" /><br />
这是什么原因，该怎么解决？</p>
]]></description><link>http://www.freqchip.net:4567/post/4734</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4734</guid><dc:creator><![CDATA[teng]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>