lkl0305

宏定义方便输出调试信息的一种方法

0
阅读(1332)

在开发MCU程序时,为了调试方便,经常需要使用串口输出一些调试信息,当调试结束后,需要将这些调试信息去掉。

最近学习了一种感觉是比较好的方法,使用#define宏定义方便添加和删除调试信息的方法,自己根据情况稍作了改动。

并在恩智浦的KSDK库中进行测试。

在程序中添加如下代码

#if __DEBUG__

#define DEBUG(format,...) PRINTF("FILE: "__FILE__" ,LINE: %05d, "format"\r\n", __LINE__, ##__VA_ARGS__)

#else

#define DEBUG(format,...)

#endif

只需要在程序中书写一个宏定义

#define __DEBUGE__ n

其中n取0时,禁止输出调试信息,n取其它值(比如1)时,可以输出调试信息。

而且输出调试信息时,同时可以输出该信息是那个程序文件的第几行数据输出。

测试程序如下。

61930-6362435152708504083135300.png-g115

当关闭调试信息输出如下。

61930-6362435152694441876177577.png-g115

当打开调试信息输出如下。

61930-6362435152703816677149392.png-g115

具体含义非常简单,这里就不过多介绍。

当然也可用如下方法,效果一样:

QQ截图20170305230038.png