串口信息打印规范(含打印技巧)

news/2024/11/24 7:34:35/

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
 


http://www.ppmy.cn/news/57180.html

相关文章

网络安全漏洞分析之远程代码执行

介绍 Apache Flume 是一个分布式的,可靠的,并且可用于高效地收集,汇总和移动大量日志数据的软件。它具有基于流数据流的简单而灵活的体系结构。它具有可调的可靠性机制以及许多故障转移和恢复机制,并且具有健壮性和容错性。它使用…

STM32-HAL-SPI-W25Q128FV简单读写测试(2)

文章目录 一、Flash的基本读写操作1.1 向芯片中的某个地址(addr:0x02)连续写入不定长的数据并读取代码示例读写流程分析函数分析 1.2 向芯片中的某个地址(addr:0x00)写入一个数值代码示例:读写流程分析 具体的配置接上…

可观测性:你的应用健康吗?

一、需求来源 首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强: 首先是提高应用的可观测性;第二是提高应…

如何用 GPT-4 帮你写游戏?

你知道的,GPT-4 发布了。 目前你想要用上 GPT-4,主要的渠道是 ChatGPT Plus 。作为交了订阅费的用户,你可以在对话的时候选择模型来使用。 另一种渠道,就是申请官方 API 的排队。我在申请 New Bing Chat 的时候,耐心被…

交叉编译相关知识整理

因为嵌入式设备的特殊性,比如其内存,性能可能相比与通用设备较弱,或者设备上缺少编译工具链等等原因,很多时候想要在嵌入式设备上使用某些程序时,需要在 在通用机器上编译好,而在嵌入式设备上运行&#xff…

Shell(五)Bash行操作目录堆栈

1.光标移动 Ctrl a:移到行首。Ctrl b:向行首移动一个字符,与左箭头作用相同。Ctrl e:移到行尾。Ctrl f:向行尾移动一个字符,与右箭头作用相同。Alt f:移动到当前单词的词尾。Alt b&#…

Github创建一个新仓库,关联本地数据并上传文件的图文步骤

工作中,我们经常会使用github来承享别人的代码果实,同时我们也会把自己的成果分享给别人,互相帮助。 今天的这篇图文教程非常重要,目标是使用Github来创建一个远程仓库,并和本地仓库对接,同时要做上传新内容…

报错解决:Could not find a package configuration file provided by “Pangolin“以及一系列问题

报错解决:Could not find a package configuration file provided by "Pangolin" 博主在使用cmake编译自己的工程时,遇到了如下报错: CMake Error at CMakeLists.txt:5 (find_package):By not providing "FindPangolin.cmake…