NRF52832 打开SDK内部log调试

一,配置打印
1,主要是在sdk_config.h中配置两个宏:

NRF_LOG_ENABLED,NRF_LOG_BACKEND_RTT_ENABLED 

将这两个值 的宏定义从0改为1,

2,在主循环中使用:NRF_LOG_PROCESS(); 这个函数,否则也不会有打印信息出来。

3,然后程序中使用 NRF_LOG_INFO("test info"),即可在debug时在调试窗口看到打印的log。

二,调用打印信息时机选择

nRF_Log还有一个功能:
    1,如果不使能Deferred,那么调用NRF_LOG_INFO等API的时候,立马就Flush,即把日志打印出去;
    2,如果使能了Deferred,那么调用NRF_LOG_INFO等API的时候,只是把打印数据放在RAM中,真正的打印由main函数中的NRF_LOG_PROCESS完成,相关宏可以在sdk_config.h中找到 , 即NRF_LOG_DEFERRED

代码如下:

//1,立即打印

static void idle_state_handle(void)
{
    //NRF_LOG_FLUSH();//不打印调试信息
    UNUSED_RETURN_VALUE(NRF_LOG_PROCESS());//打印调试信息
    nrf_pwr_mgmt_run();
}


//2,保存在ram中
static void idle_state_handle(void)
{
    NRF_LOG_FLUSH();//不打印调试信息
    //UNUSED_RETURN_VALUE(NRF_LOG_PROCESS());//打印调试信息
    nrf_pwr_mgmt_run();
}

 

你可能感兴趣的:(Nordic)