1.串口信息打印规范
学习一下串口打印信息的格式(清楚明了,调试过程中很重要)
日志级别:info(初始化)、debug(运行过程)、error(报错)
[日志级别] 文件名 : 日志信息
//例:[info] main.c : init ok!
//例: [debug] adc.c : adc_getvalue -> 3.3V
2.方法一(#define 老一套)
#define Log 1 // 打印Log信息, 不想打印时改为0即可
#if Log
printf("[info]main.c:init!\r\n");
#endif
讲解:在每一段串口打印的程序段中,加入#if Log和#endif,开启/屏蔽打印段仅需修改Log的值,为1/0-->打印/不打印信息。
这里的串口打印使用printf函数,这里使用了printf重定向(借鉴的)
注意:在使用重定向语法时需要勾选MicroLIB,否则程序会卡死在print中!!!
3.方法二(#ifdef)
#ifdef USER_MAIN_DEBUG
#define user_main_printf(format, ...) printf( format "\r\n", ##__VA_ARGS__)
#define user_main_info(format, ...) printf("[\tmain]info:" format "\r\n", ##
__VA_ARGS__)
#define user_main_debug(format, ...) printf("[\tmain]debug:" format "\r\n", ##
__VA_ARGS__)
#define user_main_error(format, ...) printf("[\tmain]error:" format "\r\n",##
__VA_ARGS__)
#else
#define user_main_printf(format, ...)
#define user_main_info(format, ...)
#define user_main_debug(format, ...)
#define user_main_error(format, ...)
#endif
讲解:
1.若使用过#define USER_MAIN_DEBUG,则使用user_main_printf();可以直接打印你所需的信息,而且会在打印代码末尾自动添加\r\n,
2.若未使用过#define USER_MAIN_DEBUG宏定义,使用对应函数则打印空白。
个性化logza