主要是在sdk_config.h中配置两个宏:
NRF_LOG_ENABLED
NRF_LOG_BACKEND_RTT_ENABLED
将这两个值 的宏定义从0改为1,然后程序中使用 NRF_LOG_INFO("test info"),即可在debug时在调试窗口看到打印的log。
最后别忘了在主循环中使用:NRF_LOG_PROCESS(); 这个函数,否则也不会有打印信息出来。
nRF_Log还有一个功能:如果不使能Deferred,那么调用NRF_LOG_INFO等API的时候,立马就Flush,即把日志打印出去;如果使能了Deferred,那么调用NRF_LOG_INFO等API的时候,只是把打印数据放在RAM中,真正的打印由main函数中的NRF_LOG_PROCESS完成,相关宏可以在sdk_config.h中找到 , 即NRF_LOG_DEFERRED
更新:
一篇讲nRF调试方法的博文,详细解释了nRF_log的工作原理及工作机制: