【问题标题】:Verbose debug printing in arduino?arduino 中的详细调试打印?
【发布时间】:2013-09-24 09:03:20
【问题描述】:

我想在 arduino 中进行某种详细的调试打印,可以通过标志启用/禁用。例如,我希望能够做类似的事情

#define VERBOSE
#define VERBOSE_PRINT(text) #ifdef VERBOSE Serial.println(text); #endif

后面的代码:

VERBOSE_PRINT("Doing something");

如果定义了 VERBOSE,那么我应该通过串行端口获取内容,如果未定义,则不会编译该代码。不幸的是,这不起作用。我收到错误消息:“错误:'#' 后面没有宏参数”。所以我想知道获得可选编译的打印(或任何相关内容)的最佳方法是什么。当然我可以手动写出#ifdefs,但我希望它精简,这样它就不会占用大量空间,所以我不必每次想使用它时都写出来。函数内部带有#ifdef 的函数是最好的方法吗?

【问题讨论】:

    标签: debugging arduino preprocessor


    【解决方案1】:
    #define VERBOSE
    
    #ifdef VERBOSE
    #define VERBOSE_PRINT(str) Serial.println(str)
    #else
    #define VERBOSE_PRINT(str)
    #endif
    
    VERBOSE_PRINT("Doing something");
    

    【讨论】:

    • 感谢您的建议。似乎适用于数字,但不适用于文本。不太清楚为什么这有任何意义,但这是我得到的结果。例如 VERBOSE_PRINT(12345); VERBOSE_PRINT("Test") 结果:12345
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多