nRF52笔记(25) sd_power_system_off() 返回ERR问题

转载地址

如果系统在Debug(RTT打开)模式下,调用sd_power_system_off()将会返回NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN。这往往会导致check_err_code报错导致系统复位无法进入低功耗状态。这个问题是属于正常表现,如果需要对功耗进行测试,只需要禁止Debug或者拔掉JLINK即可。

实际工程中可以通过以下方式处理低功耗的问题,代码如下:

void power_off(void)
{
	// Prepare wakeup buttons.
	bsp_wakeup_button_enable(USER_ID_ON_OFF_KEY); 
        bsp_wakeup_button_enable(USER_ID_CHG); 

	// Go to system-off mode (this function will not return; wakeup will cause a reset).
	#ifdef NRF_LOG_ENABLED|NRF_LOG_BACKEND_SERIAL_USES_RTT
	     (void) sd_power_system_off();
	#else
        //避开Debug的时候进行check err
        APP_ERROR_CHECK(sd_power_system_off());
	while(1);
	#endif  // DEBUG_NRF
}

可以加入QQ群:687360507
与大伙沟通交流,技术在于分享而进步


版权声明:本文为zhi_Alanwu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。